contextReference;
+
+ public void onCreate() {
+ super.onCreate();
+ instance = this;
+ contextReference = new WeakReference<>(getApplicationContext());
+ DynamicColors.applyToActivitiesIfAvailable(this);
+ }
+
+ public static Context getAppContext() {
+ if (contextReference == null || contextReference.get() == null) {
+ contextReference = new WeakReference<>(OxygenCustomizer.getInstance().getApplicationContext());
+ }
+ return contextReference.get();
+ }
+
+ private static OxygenCustomizer getInstance() {
+ if (instance == null) {
+ instance = new OxygenCustomizer();
+ }
+ return instance;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/BackgroundChipPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/BackgroundChipPreference.java
new file mode 100644
index 000000000..65d3914f5
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/BackgroundChipPreference.java
@@ -0,0 +1,342 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getBottomDxR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getBottomSxR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getGradientNum;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getGradientOrientation;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getRoundedCorners;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getStrokeColor;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getStrokeWidth;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getStyle;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getTopDxR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getTopSxR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getUseAccentColor;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getUseGradient;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.Color;
+import android.graphics.drawable.GradientDrawable;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentActivity;
+import androidx.preference.DialogPreference;
+
+import com.google.android.material.bottomsheet.BottomSheetDialog;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.databinding.QsChipLayoutBinding;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+import it.dhd.oxygencustomizer.utils.ThemeUtils;
+
+public class BackgroundChipPreference extends DialogPreference {
+
+ private BottomSheetDialog bottomSheetDialog;
+ private int mAccentColor;
+ boolean useGradient;
+ boolean useAccentColor;
+ boolean roundCorners;
+ int gradientColor1;
+ int gradientColor2;
+ int gradientOrientation;
+ GradientDrawable.Orientation orientation;
+ int gradientType = GradientDrawable.LINEAR_GRADIENT;
+ int strokeWidth;
+ int strokeColor;
+ int topSxR, topDxR, bottomSxR, bottomDxR;
+ int backgroundChipStyle = 0;
+ GradientDrawable gradientDrawable = new GradientDrawable();
+ private QsChipLayoutBinding binding;
+
+ private int chipStyle = 0;
+
+
+ public BackgroundChipPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.BackgroundChipPreference);
+ chipStyle = a.getInteger(R.styleable.BackgroundChipPreference_backgroundChipStyle, 0);
+ a.recycle();
+
+ }
+
+ public BackgroundChipPreference(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.BackgroundChipPreference);
+ chipStyle = a.getInteger(R.styleable.BackgroundChipPreference_backgroundChipStyle, 0);
+ a.recycle();
+ }
+
+ public BackgroundChipPreference(@NonNull Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.BackgroundChipPreference);
+ chipStyle = a.getInteger(R.styleable.BackgroundChipPreference_backgroundChipStyle, 0);
+ a.recycle();
+ }
+
+ public BackgroundChipPreference(@NonNull Context context) {
+ super(context);
+ }
+
+ @Override
+ protected void onClick() {
+ bottomSheetDialog = new BottomSheetDialog(getContext());
+ mAccentColor = ThemeUtils.getPrimaryColor(getContext());
+ SharedPreferences prefs = PreferenceHelper.instance.mPreferences;
+
+ // def props
+ backgroundChipStyle = prefs.getInt(getStyle(getKey()), 0);
+ useAccentColor = prefs.getBoolean(getUseAccentColor(getKey()), true);
+ useGradient = prefs.getBoolean(getUseGradient(getKey()), false);
+ gradientColor1 = prefs.getInt(getGradientNum(getKey(), 1), mAccentColor);
+ gradientColor2 = prefs.getInt(getGradientNum(getKey(), 2), mAccentColor);
+ gradientOrientation = prefs.getInt(getGradientOrientation(getKey()), 0);
+ orientation = switch (gradientOrientation) {
+ case 1 -> GradientDrawable.Orientation.RIGHT_LEFT;
+ case 2 -> GradientDrawable.Orientation.TOP_BOTTOM;
+ case 3 -> GradientDrawable.Orientation.BOTTOM_TOP;
+ default -> GradientDrawable.Orientation.LEFT_RIGHT;
+ };
+ gradientType = GradientDrawable.LINEAR_GRADIENT;
+ strokeWidth = prefs.getInt(getStrokeWidth(getKey()), 10);
+ strokeColor = prefs.getInt(getStrokeColor(getKey()), mAccentColor);
+ topSxR = prefs.getInt(getTopSxR(getKey()), 28);
+ topDxR = prefs.getInt(getTopDxR(getKey()), 28);
+ bottomSxR = prefs.getInt(getBottomSxR(getKey()), 28);
+ bottomDxR = prefs.getInt(getBottomDxR(getKey()), 28);
+
+ binding = QsChipLayoutBinding.inflate(LayoutInflater.from(getContext()));
+
+ // Setup textclock
+ switch (chipStyle) {
+ case 0 -> {
+ binding.textClock.setFormat12Hour("hh:mm");
+ binding.textClock.setFormat24Hour("HH:mm");
+ }
+ case 1 -> {
+ binding.textClock.setFormat12Hour("EEE dd MMM");
+ binding.textClock.setFormat24Hour("EEE dd MMM");
+ }
+ case 2 -> {
+ binding.textClock.setVisibility(View.GONE);
+ }
+ }
+
+ // Setup toolbar
+ binding.toolbarPreference.setTitle(getTitle());
+ binding.toolbarPreference.setTitleCentered(true);
+
+ setupGradient();
+
+ // set textclock
+ binding.textClock.setBackground(gradientDrawable);
+ binding.textClock.setTextSize(getAdapterTextSizeSp());
+
+ // Buttons
+ binding.filledChip.setOnClickListener(v -> {
+ prefs.edit().putInt(getKey() + "_STYLE", 0).apply();
+ backgroundChipStyle = 0;
+
+ setupWidgets();
+ setupGradient();
+ });
+ binding.outlinedChip.setOnClickListener(v -> {
+ prefs.edit().putInt(getKey() + "_STYLE", 1).apply();
+ backgroundChipStyle = 1;
+
+ setupWidgets();
+ setupGradient();
+ });
+
+ // Color Category
+ binding.accentSwitch.setSwitchChangeListener((buttonView, isChecked) -> {
+ prefs.edit().putBoolean(getUseAccentColor(getKey()), isChecked).apply();
+ useAccentColor = isChecked;
+
+ setupWidgets();
+ setupGradient();
+ });
+
+ binding.gradientSwitch.setSwitchChangeListener((buttonView, isChecked) -> {
+ prefs.edit().putBoolean(getUseGradient(getKey()), isChecked).apply();
+ useGradient = isChecked;
+
+ setupWidgets();
+ setupGradient();
+ });
+
+ binding.colorPickerGradient1.setColorPickerListener(
+ (FragmentActivity) getContext(),
+ prefs.getInt(getGradientNum(getKey(), 1), mAccentColor),
+ true,
+ true,
+ true
+ );
+
+ binding.colorPickerGradient1.setOnColorSelectedListener(color -> {
+ prefs.edit().putInt(getGradientNum(getKey(), 1), color).apply();
+ gradientColor1 = color;
+
+ setupWidgets();
+ setupGradient();
+ });
+
+ binding.colorPickerGradient2.setColorPickerListener(
+ (FragmentActivity) getContext(),
+ prefs.getInt(getGradientNum(getKey(), 2), mAccentColor),
+ true,
+ true,
+ true
+ );
+ binding.colorPickerGradient2.setOnColorSelectedListener(color -> {
+ prefs.edit().putInt(getGradientNum(getKey(), 2), color).apply();
+ gradientColor2 = color;
+
+ setupWidgets();
+ setupGradient();
+ });
+
+ // Stroke Category
+ binding.strokeWidth.setOnSliderChangeListener((slider, value, fromUser) -> {
+ prefs.edit().putInt(getStrokeWidth(getKey()), (int) value).apply();
+ strokeWidth = (int) value;
+
+ setupGradient();
+ });
+ binding.roundCornersSwitch.setSwitchChangeListener((buttonView, isChecked) -> {
+ prefs.edit().putBoolean(getRoundedCorners(getKey()), isChecked).apply();
+ roundCorners = isChecked;
+
+ setupWidgets();
+ setupGradient();
+ });
+ binding.topSxCorner.setOnSliderChangeListener((slider, value, fromUser) -> {
+ prefs.edit().putInt(getTopSxR(getKey()), (int) value).apply();
+ topSxR = (int) value;
+
+ setupGradient();
+ });
+ binding.topDxCorner.setOnSliderChangeListener((slider, value, fromUser) -> {
+ prefs.edit().putInt(getTopDxR(getKey()), (int) value).apply();
+ topDxR = (int) value;
+
+ setupGradient();
+ });
+ binding.bottomSxCorner.setOnSliderChangeListener((slider, value, fromUser) -> {
+ prefs.edit().putInt(getBottomSxR(getKey()), (int) value).apply();
+ bottomSxR = (int) value;
+
+ setupGradient();
+ });
+ binding.bottomDxCorner.setOnSliderChangeListener((slider, value, fromUser) -> {
+ prefs.edit().putInt(getBottomDxR(getKey()), (int) value).apply();
+ bottomDxR = (int) value;
+
+ setupGradient();
+ });
+
+ // Set Widgets
+ setupWidgets();
+
+ }
+
+ public float getAdapterTextSizeSp() {
+ float f = 12.0f;
+ int fontScaleToArrayIndex = fontScaleToArrayIndex(new float[]{0.9f, 1.0f, 1.15f, 1.35f, 1.60f});
+ int[] desiredFontSize = new int[]{18, 18, 18, 16, 12};
+ if (desiredFontSize.length > fontScaleToArrayIndex) {
+ f = desiredFontSize[fontScaleToArrayIndex];
+ }
+ return f;
+ }
+
+
+ private int fontScaleToArrayIndex(float[] fArr) {
+ float fontScale = Resources.getSystem().getConfiguration().fontScale;
+ int index = 0;
+ float minDifference = Math.abs(fArr[0] - fontScale);
+
+ for (int i = 1; i < fArr.length; i++) {
+ float difference = Math.abs(fArr[i] - fontScale);
+
+ if (difference <= minDifference) {
+ index = i;
+ minDifference = difference;
+ }
+ }
+
+ return index;
+ }
+
+ private void setupGradient() {
+ // setup gradient
+ gradientDrawable.setShape(GradientDrawable.RECTANGLE);
+ gradientDrawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
+ gradientDrawable.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
+ if (backgroundChipStyle == 0) {
+ if (useAccentColor)
+ gradientDrawable.setColors(new int[]{mAccentColor, mAccentColor});
+ else if (useGradient)
+ gradientDrawable.setColors(new int[]{gradientColor1, gradientColor2});
+ else
+ gradientDrawable.setColors(new int[]{gradientColor1, gradientColor1});
+
+ gradientDrawable.setStroke(0, Color.TRANSPARENT);
+ } else {
+ gradientDrawable.setColors(new int[]{Color.TRANSPARENT, Color.TRANSPARENT});
+ gradientDrawable.setStroke(strokeWidth, useAccentColor ? mAccentColor : gradientColor1);
+ }
+ if (roundCorners) {
+ gradientDrawable.setCornerRadii(new float[]{
+ dp2px(getContext(), topSxR), dp2px(getContext(), topSxR),
+ dp2px(getContext(), topDxR), dp2px(getContext(), topDxR),
+ dp2px(getContext(), bottomSxR), dp2px(getContext(), bottomSxR),
+ dp2px(getContext(), bottomDxR), dp2px(getContext(), bottomDxR)
+ });
+ } else {
+ gradientDrawable.setCornerRadius(0);
+ }
+
+ gradientDrawable.setPadding(20, 8, 20, 8);
+ gradientDrawable.invalidateSelf();
+ }
+
+ private void setupWidgets() {
+ if (binding == null) return;
+ binding.filledChip.setChecked(backgroundChipStyle == 0);
+ binding.outlinedChip.setChecked(!binding.filledChip.isChecked());
+ binding.strokePrefs.setVisibility(binding.outlinedChip.isChecked() ? View.VISIBLE : View.GONE);
+ binding.strokeWidth.setVisibility(binding.outlinedChip.isChecked() ? View.VISIBLE : View.GONE);
+ binding.accentSwitch.setSwitchChecked(useAccentColor);
+ binding.gradientSwitch.setVisibility(useAccentColor || backgroundChipStyle == 1 ? View.GONE : View.VISIBLE);
+ binding.gradientSwitch.setSwitchChecked(useGradient);
+ binding.colorPickerGradient1.setVisibility(useAccentColor ? View.GONE : View.VISIBLE);
+ binding.colorPickerGradient1.setTitle(useGradient ? getContext().getString(R.string.chip_gradient_color_1) : getContext().getString(R.string.chip_color_color));
+ binding.colorPickerGradient1.setPreviewColor(gradientColor1);
+ if (!useAccentColor && useGradient && backgroundChipStyle == 0) {
+ binding.colorPickerGradient2.setVisibility(View.VISIBLE);
+ } else {
+ binding.colorPickerGradient2.setVisibility(View.GONE);
+ }
+
+ binding.colorPickerGradient2.setPreviewColor(gradientColor2);
+ binding.strokeWidth.setSliderValue(strokeWidth);
+ binding.roundCornersSwitch.setSwitchChecked(roundCorners);
+ binding.topSxCorner.setVisibility(roundCorners ? View.VISIBLE : View.GONE);
+ binding.topSxCorner.setSliderValue(topSxR);
+ binding.topDxCorner.setVisibility(roundCorners ? View.VISIBLE : View.GONE);
+ binding.topDxCorner.setSliderValue(topDxR);
+ binding.bottomSxCorner.setVisibility(roundCorners ? View.VISIBLE : View.GONE);
+ binding.bottomSxCorner.setSliderValue(bottomSxR);
+ binding.bottomDxCorner.setVisibility(roundCorners ? View.VISIBLE : View.GONE);
+ binding.bottomDxCorner.setSliderValue(bottomDxR);
+ bottomSheetDialog.setContentView(binding.getRoot());
+ bottomSheetDialog.show();
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/FooterPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/FooterPreference.java
new file mode 100644
index 000000000..331fd5c28
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/FooterPreference.java
@@ -0,0 +1,296 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import android.content.Context;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.style.URLSpan;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import it.dhd.oxygencustomizer.R;
+
+/**
+ * A custom preference acting as "footer" of a page. It has a field for icon and text. It is added
+ * to screen as the last preference.
+ */
+public class FooterPreference extends Preference {
+
+ public static final String KEY_FOOTER = "footer_preference";
+ static final int ORDER_FOOTER = Integer.MAX_VALUE - 1;
+ @VisibleForTesting
+ View.OnClickListener mLearnMoreListener;
+ @VisibleForTesting
+ int mIconVisibility = View.VISIBLE;
+ private CharSequence mContentDescription;
+ private CharSequence mLearnMoreText;
+ private FooterLearnMoreSpan mLearnMoreSpan;
+
+ public FooterPreference(Context context, AttributeSet attrs) {
+ super(context, attrs, R.attr.footerPreferenceStyle);
+ init();
+ }
+
+ public FooterPreference(Context context) {
+ this(context, null);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ TextView title = holder.itemView.findViewById(android.R.id.title);
+ if (title != null && !TextUtils.isEmpty(mContentDescription)) {
+ title.setContentDescription(mContentDescription);
+ }
+
+ TextView learnMore = holder.itemView.findViewById(R.id.settingslib_learn_more);
+ if (learnMore != null) {
+ if (mLearnMoreListener != null) {
+ learnMore.setVisibility(View.VISIBLE);
+ if (TextUtils.isEmpty(mLearnMoreText)) {
+ mLearnMoreText = learnMore.getText();
+ } else {
+ learnMore.setText(mLearnMoreText);
+ }
+ SpannableString learnMoreText = new SpannableString(mLearnMoreText);
+ if (mLearnMoreSpan != null) {
+ learnMoreText.removeSpan(mLearnMoreSpan);
+ }
+ mLearnMoreSpan = new FooterLearnMoreSpan(mLearnMoreListener);
+ learnMoreText.setSpan(mLearnMoreSpan, 0,
+ learnMoreText.length(), 0);
+ learnMore.setText(learnMoreText);
+ } else {
+ learnMore.setVisibility(View.GONE);
+ }
+ }
+
+ View icon = holder.itemView.findViewById(R.id.icon_frame);
+ if (icon != null) {
+ icon.setVisibility(mIconVisibility);
+ }
+ }
+
+ @Override
+ public void setSummary(CharSequence summary) {
+ setTitle(summary);
+ }
+
+ @Override
+ public void setSummary(int summaryResId) {
+ setTitle(summaryResId);
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return getTitle();
+ }
+
+ /**
+ * To set content description of the {@link FooterPreference}. This can use for talkback
+ * environment if developer wants to have a customization content.
+ *
+ * @param contentDescription The resource id of the content description.
+ */
+ public void setContentDescription(CharSequence contentDescription) {
+ if (!TextUtils.equals(mContentDescription, contentDescription)) {
+ mContentDescription = contentDescription;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Return the content description of footer preference.
+ */
+ @VisibleForTesting
+ CharSequence getContentDescription() {
+ return mContentDescription;
+ }
+
+ /**
+ * Sets the learn more text.
+ *
+ * @param learnMoreText The string of the learn more text.
+ */
+ public void setLearnMoreText(CharSequence learnMoreText) {
+ if (!TextUtils.equals(mLearnMoreText, learnMoreText)) {
+ mLearnMoreText = learnMoreText;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Assign an action for the learn more link.
+ */
+ public void setLearnMoreAction(View.OnClickListener listener) {
+ if (mLearnMoreListener != listener) {
+ mLearnMoreListener = listener;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Set visibility of footer icon.
+ */
+ public void setIconVisibility(int iconVisibility) {
+ if (mIconVisibility == iconVisibility) {
+ return;
+ }
+ mIconVisibility = iconVisibility;
+ notifyChanged();
+ }
+
+ private void init() {
+ setLayoutResource(R.layout.preference_footer);
+ if (getIcon() == null) {
+ setIcon(R.drawable.settingslib_ic_info_outline_24);
+ }
+ setOrder(ORDER_FOOTER);
+ if (TextUtils.isEmpty(getKey())) {
+ setKey(KEY_FOOTER);
+ }
+ setSelectable(false);
+ }
+
+ /**
+ * The builder is convenient to creat a dynamic FooterPreference.
+ */
+ public static class Builder {
+ private Context mContext;
+ private String mKey;
+ private CharSequence mTitle;
+ private CharSequence mContentDescription;
+ private CharSequence mLearnMoreText;
+
+ public Builder(@NonNull Context context) {
+ mContext = context;
+ }
+
+ /**
+ * To set the key value of the {@link FooterPreference}.
+ *
+ * @param key The key value.
+ */
+ public Builder setKey(@NonNull String key) {
+ mKey = key;
+ return this;
+ }
+
+ /**
+ * To set the title of the {@link FooterPreference}.
+ *
+ * @param title The title.
+ */
+ public Builder setTitle(CharSequence title) {
+ mTitle = title;
+ return this;
+ }
+
+ /**
+ * To set the title of the {@link FooterPreference}.
+ *
+ * @param titleResId The resource id of the title.
+ */
+ public Builder setTitle(@StringRes int titleResId) {
+ mTitle = mContext.getText(titleResId);
+ return this;
+ }
+
+ /**
+ * To set content description of the {@link FooterPreference}. This can use for talkback
+ * environment if developer wants to have a customization content.
+ *
+ * @param contentDescription The resource id of the content description.
+ */
+ public Builder setContentDescription(CharSequence contentDescription) {
+ mContentDescription = contentDescription;
+ return this;
+ }
+
+ /**
+ * To set content description of the {@link FooterPreference}. This can use for talkback
+ * environment if developer wants to have a customization content.
+ *
+ * @param contentDescriptionResId The resource id of the content description.
+ */
+ public Builder setContentDescription(@StringRes int contentDescriptionResId) {
+ mContentDescription = mContext.getText(contentDescriptionResId);
+ return this;
+ }
+
+ /**
+ * To set learn more string of the learn more text. This can use for talkback
+ * environment if developer wants to have a customization content.
+ *
+ * @param learnMoreText The resource id of the learn more string.
+ */
+ public Builder setLearnMoreText(CharSequence learnMoreText) {
+ mLearnMoreText = learnMoreText;
+ return this;
+ }
+
+ /**
+ * To set learn more string of the {@link FooterPreference}. This can use for talkback
+ * environment if developer wants to have a customization content.
+ *
+ * @param learnMoreTextResId The resource id of the learn more string.
+ */
+ public Builder setLearnMoreText(@StringRes int learnMoreTextResId) {
+ mLearnMoreText = mContext.getText(learnMoreTextResId);
+ return this;
+ }
+
+
+ /**
+ * To generate the {@link FooterPreference}.
+ */
+ public FooterPreference build() {
+ final FooterPreference footerPreference = new FooterPreference(mContext);
+ footerPreference.setSelectable(false);
+ if (TextUtils.isEmpty(mTitle)) {
+ throw new IllegalArgumentException("Footer title cannot be empty!");
+ }
+ footerPreference.setTitle(mTitle);
+ if (!TextUtils.isEmpty(mKey)) {
+ footerPreference.setKey(mKey);
+ }
+
+ if (!TextUtils.isEmpty(mContentDescription)) {
+ footerPreference.setContentDescription(mContentDescription);
+ }
+
+ if (!TextUtils.isEmpty(mLearnMoreText)) {
+ footerPreference.setLearnMoreText(mLearnMoreText);
+ }
+ return footerPreference;
+ }
+ }
+
+ /**
+ * A {@link URLSpan} that opens a support page when clicked
+ */
+ static class FooterLearnMoreSpan extends URLSpan {
+
+ private final View.OnClickListener mClickListener;
+
+ FooterLearnMoreSpan(View.OnClickListener clickListener) {
+ // sets the url to empty string so we can prevent any other span processing from
+ // clearing things we need in this string.
+ super("");
+ mClickListener = clickListener;
+ }
+
+ @Override
+ public void onClick(View widget) {
+ if (mClickListener != null) {
+ mClickListener.onClick(widget);
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/IllustrationPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/IllustrationPreference.java
new file mode 100644
index 000000000..8ce1ebeb3
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/IllustrationPreference.java
@@ -0,0 +1,429 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.drawable.Animatable;
+import android.graphics.drawable.Animatable2;
+import android.graphics.drawable.AnimationDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RawRes;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+import androidx.vectordrawable.graphics.drawable.Animatable2Compat;
+
+import com.airbnb.lottie.LottieAnimationView;
+import com.airbnb.lottie.LottieDrawable;
+
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+
+import it.dhd.oxygencustomizer.R;
+
+/**
+ * IllustrationPreference is a preference that can play lottie format animation
+ */
+public class IllustrationPreference extends Preference {
+
+ private static final String TAG = "IllustrationPreference";
+
+ private static final boolean IS_ENABLED_LOTTIE_ADAPTIVE_COLOR = false;
+ private static final int SIZE_UNSPECIFIED = -1;
+
+ private int mMaxHeight = SIZE_UNSPECIFIED;
+ private int mImageResId;
+ private boolean mCacheComposition = true;
+ private boolean mIsAutoScale;
+ private Uri mImageUri;
+ private Drawable mImageDrawable;
+ private View mMiddleGroundView;
+ private OnBindListener mOnBindListener;
+
+ private boolean mLottieDynamicColor;
+
+ /**
+ * Interface to listen in on when {@link #onBindViewHolder(PreferenceViewHolder)} occurs.
+ */
+ public interface OnBindListener {
+ /**
+ * Called when when {@link #onBindViewHolder(PreferenceViewHolder)} occurs.
+ * @param animationView the animation view for this preference.
+ */
+ void onBind(LottieAnimationView animationView);
+ }
+
+ private final Animatable2.AnimationCallback mAnimationCallback =
+ new Animatable2.AnimationCallback() {
+ @Override
+ public void onAnimationEnd(Drawable drawable) {
+ ((Animatable) drawable).start();
+ }
+ };
+
+ private final Animatable2Compat.AnimationCallback mAnimationCallbackCompat =
+ new Animatable2Compat.AnimationCallback() {
+ @Override
+ public void onAnimationEnd(Drawable drawable) {
+ ((Animatable) drawable).start();
+ }
+ };
+
+ public IllustrationPreference(Context context) {
+ super(context);
+ init(context, /* attrs= */ null);
+ }
+
+ public IllustrationPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(context, attrs);
+ }
+
+ public IllustrationPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(context, attrs);
+ }
+
+ public IllustrationPreference(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init(context, attrs);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ final ImageView backgroundView =
+ (ImageView) holder.findViewById(R.id.background_view);
+ final FrameLayout middleGroundLayout =
+ (FrameLayout) holder.findViewById(R.id.middleground_layout);
+ final LottieAnimationView illustrationView =
+ (LottieAnimationView) holder.findViewById(R.id.lottie_view);
+
+ // To solve the problem of non-compliant illustrations, we set the frame height
+ // to 300dp and set the length of the short side of the screen to
+ // the width of the frame.
+ final int screenWidth = getContext().getResources().getDisplayMetrics().widthPixels;
+ final int screenHeight = getContext().getResources().getDisplayMetrics().heightPixels;
+ final FrameLayout illustrationFrame = (FrameLayout) holder.findViewById(
+ R.id.illustration_frame);
+ final LayoutParams lp = (LayoutParams) illustrationFrame.getLayoutParams();
+ lp.width = screenWidth < screenHeight ? screenWidth : screenHeight;
+ illustrationFrame.setLayoutParams(lp);
+
+ illustrationView.setCacheComposition(mCacheComposition);
+ handleImageWithAnimation(illustrationFrame, illustrationView);
+ handleImageFrameMaxHeight(backgroundView, illustrationView);
+
+ if (mIsAutoScale) {
+ illustrationView.setScaleType(mIsAutoScale
+ ? ImageView.ScaleType.CENTER_CROP
+ : ImageView.ScaleType.CENTER_INSIDE);
+ }
+
+ handleMiddleGroundView(middleGroundLayout);
+
+ if (mOnBindListener != null) {
+ mOnBindListener.onBind(illustrationView);
+ }
+ }
+
+ /**
+ * Sets a listener to be notified when the views are binded.
+ */
+ public void setOnBindListener(OnBindListener listener) {
+ mOnBindListener = listener;
+ }
+
+ /**
+ * Sets the middle ground view to preference. The user
+ * can overlay a view on top of the animation.
+ */
+ public void setMiddleGroundView(View view) {
+ if (view != mMiddleGroundView) {
+ mMiddleGroundView = view;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Removes the middle ground view of preference.
+ */
+ public void removeMiddleGroundView() {
+ mMiddleGroundView = null;
+ notifyChanged();
+ }
+
+ /**
+ * Enables the auto scale feature of animation view.
+ */
+ public void enableAnimationAutoScale(boolean enable) {
+ if (enable != mIsAutoScale) {
+ mIsAutoScale = enable;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Sets the lottie illustration resource id.
+ */
+ public void setLottieAnimationResId(int resId) {
+ if (resId != mImageResId) {
+ resetImageResourceCache();
+ mImageResId = resId;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Gets the lottie illustration resource id.
+ */
+ public int getLottieAnimationResId() {
+ return mImageResId;
+ }
+
+ /**
+ * Sets the image drawable to display image in {@link LottieAnimationView}.
+ *
+ * @param imageDrawable the drawable of an image
+ */
+ public void setImageDrawable(Drawable imageDrawable) {
+ if (imageDrawable != mImageDrawable) {
+ resetImageResourceCache();
+ mImageDrawable = imageDrawable;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Gets the image drawable from display image in {@link LottieAnimationView}.
+ *
+ * @return the drawable of an image
+ */
+ public Drawable getImageDrawable() {
+ return mImageDrawable;
+ }
+
+ /**
+ * Sets the image uri to display image in {@link LottieAnimationView}.
+ *
+ * @param imageUri the Uri of an image
+ */
+ public void setImageUri(Uri imageUri) {
+ if (imageUri != mImageUri) {
+ resetImageResourceCache();
+ mImageUri = imageUri;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Gets the image uri from display image in {@link LottieAnimationView}.
+ *
+ * @return the Uri of an image
+ */
+ public Uri getImageUri() {
+ return mImageUri;
+ }
+
+ /**
+ * Sets the maximum height of the views, still use the specific one if the maximum height was
+ * larger than the specific height from XML.
+ *
+ * @param maxHeight the maximum height of the frame views in terms of pixels.
+ */
+ public void setMaxHeight(int maxHeight) {
+ if (maxHeight != mMaxHeight) {
+ mMaxHeight = maxHeight;
+ notifyChanged();
+ }
+ }
+
+ /**
+ * Sets the lottie illustration apply dynamic color.
+ */
+ public void applyDynamicColor() {
+ mLottieDynamicColor = true;
+ notifyChanged();
+ }
+
+ /**
+ * Return if the lottie illustration apply dynamic color or not.
+ */
+ public boolean isApplyDynamicColor() {
+ return mLottieDynamicColor;
+ }
+
+ private void resetImageResourceCache() {
+ mImageDrawable = null;
+ mImageUri = null;
+ mImageResId = 0;
+ }
+
+ private void handleMiddleGroundView(ViewGroup middleGroundLayout) {
+ middleGroundLayout.removeAllViews();
+
+ if (mMiddleGroundView != null) {
+ middleGroundLayout.addView(mMiddleGroundView);
+ middleGroundLayout.setVisibility(View.VISIBLE);
+ } else {
+ middleGroundLayout.setVisibility(View.GONE);
+ }
+ }
+
+ private void handleImageWithAnimation(FrameLayout illustrationFrame,
+ LottieAnimationView illustrationView) {
+ if (mImageDrawable != null) {
+ resetAnimations(illustrationView);
+ illustrationView.setImageDrawable(mImageDrawable);
+ final Drawable drawable = illustrationView.getDrawable();
+ if (drawable != null) {
+ startAnimation(drawable);
+ }
+ }
+
+ if (mImageUri != null) {
+ resetAnimations(illustrationView);
+ illustrationView.setImageURI(mImageUri);
+ final Drawable drawable = illustrationView.getDrawable();
+ if (drawable != null) {
+ startAnimation(drawable);
+ } else {
+ // The lottie image from the raw folder also returns null because the ImageView
+ // couldn't handle it now.
+ startLottieAnimationWith(illustrationFrame, illustrationView, mImageUri);
+ }
+ }
+
+ if (mImageResId > 0) {
+ resetAnimations(illustrationView);
+ illustrationView.setImageResource(mImageResId);
+ final Drawable drawable = illustrationView.getDrawable();
+ if (drawable != null) {
+ startAnimation(drawable);
+ } else {
+ // The lottie image from the raw folder also returns null because the ImageView
+ // couldn't handle it now.
+ startLottieAnimationWith(illustrationFrame, illustrationView, mImageResId);
+ }
+ }
+ }
+
+ private void handleImageFrameMaxHeight(ImageView backgroundView, ImageView illustrationView) {
+ if (mMaxHeight == SIZE_UNSPECIFIED) {
+ return;
+ }
+
+ final Resources res = backgroundView.getResources();
+ final int frameWidth = res.getDimensionPixelSize(R.dimen.settingslib_illustration_width);
+ final int frameHeight = res.getDimensionPixelSize(R.dimen.settingslib_illustration_height);
+ final int restrictedMaxHeight = Math.min(mMaxHeight, frameHeight);
+ backgroundView.setMaxHeight(restrictedMaxHeight);
+ illustrationView.setMaxHeight(restrictedMaxHeight);
+
+ // Ensures the illustration view size is smaller than or equal to the background view size.
+ final float aspectRatio = (float) frameWidth / frameHeight;
+ illustrationView.setMaxWidth((int) (restrictedMaxHeight * aspectRatio));
+ }
+
+ private void startAnimation(Drawable drawable) {
+ if (!(drawable instanceof Animatable)) {
+ return;
+ }
+
+ if (drawable instanceof Animatable2) {
+ ((Animatable2) drawable).registerAnimationCallback(mAnimationCallback);
+ } else if (drawable instanceof Animatable2Compat) {
+ ((Animatable2Compat) drawable).registerAnimationCallback(mAnimationCallbackCompat);
+ } else if (drawable instanceof AnimationDrawable) {
+ ((AnimationDrawable) drawable).setOneShot(false);
+ }
+
+ ((Animatable) drawable).start();
+ }
+
+ private static void startLottieAnimationWith(FrameLayout illustrationFrame,
+ LottieAnimationView illustrationView, Uri imageUri) {
+ final InputStream inputStream =
+ getInputStreamFromUri(illustrationView.getContext(), imageUri);
+ illustrationFrame.setVisibility(View.VISIBLE);
+ illustrationView.setFailureListener(result -> {
+ Log.w(TAG, "Invalid illustration image uri: " + imageUri, result);
+ illustrationFrame.setVisibility(View.GONE);
+ });
+ illustrationView.setAnimation(inputStream, /* cacheKey= */ null);
+ illustrationView.setRepeatCount(LottieDrawable.INFINITE);
+ illustrationView.playAnimation();
+ }
+
+ private static void startLottieAnimationWith(FrameLayout illustrationFrame,
+ LottieAnimationView illustrationView, @RawRes int rawRes) {
+ illustrationFrame.setVisibility(View.VISIBLE);
+ illustrationView.setFailureListener(result -> {
+ Log.w(TAG, "Invalid illustration resource id: " + rawRes, result);
+ illustrationFrame.setVisibility(View.GONE);
+ });
+ illustrationView.setAnimation(rawRes);
+ illustrationView.setRepeatCount(LottieDrawable.INFINITE);
+ illustrationView.playAnimation();
+ }
+
+ private static void resetAnimations(LottieAnimationView illustrationView) {
+ resetAnimation(illustrationView.getDrawable());
+
+ illustrationView.cancelAnimation();
+ }
+
+ private static void resetAnimation(Drawable drawable) {
+ if (!(drawable instanceof Animatable)) {
+ return;
+ }
+
+ if (drawable instanceof Animatable2) {
+ ((Animatable2) drawable).clearAnimationCallbacks();
+ } else if (drawable instanceof Animatable2Compat) {
+ ((Animatable2Compat) drawable).clearAnimationCallbacks();
+ }
+
+ ((Animatable) drawable).stop();
+ }
+
+ private static InputStream getInputStreamFromUri(Context context, Uri uri) {
+ try {
+ return context.getContentResolver().openInputStream(uri);
+ } catch (FileNotFoundException e) {
+ Log.w(TAG, "Cannot find content uri: " + uri, e);
+ return null;
+ }
+ }
+
+ private void init(Context context, AttributeSet attrs) {
+ setLayoutResource(R.layout.illustration_preference);
+
+ mIsAutoScale = false;
+ if (attrs != null) {
+ TypedArray a = context.obtainStyledAttributes(attrs,
+ com.airbnb.lottie.R.styleable.LottieAnimationView, 0 /*defStyleAttr*/, 0 /*defStyleRes*/);
+ mImageResId = a.getResourceId(com.airbnb.lottie.R.styleable.LottieAnimationView_lottie_rawRes, 0);
+ mCacheComposition = a.getBoolean(
+ com.airbnb.lottie.R.styleable.LottieAnimationView_lottie_cacheComposition, true);
+
+ /*a = context.obtainStyledAttributes(attrs,
+ R.styleable.IllustrationPreference, 0, 0);
+ mLottieDynamicColor = a.getBoolean(R.styleable.IllustrationPreference_dynamicColor,
+ false); */
+
+ a.recycle();
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/LinkTextView.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/LinkTextView.java
new file mode 100644
index 000000000..d1892756a
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/LinkTextView.java
@@ -0,0 +1,35 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import android.content.Context;
+import android.text.Spanned;
+import android.text.method.LinkMovementMethod;
+import android.text.style.ClickableSpan;
+import android.util.AttributeSet;
+
+/**
+ * Copied from setup wizard. This TextView performed two functions. The first is to make it so the
+ * link behaves properly and becomes clickable. The second was that it made the link visible to
+ * accessibility services, but from O forward support for links is provided natively.
+ */
+public class LinkTextView extends androidx.appcompat.widget.AppCompatTextView {
+
+ public LinkTextView(Context context) {
+ this(context, null);
+ }
+
+ public LinkTextView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ @Override
+ public void setText(CharSequence text, BufferType type) {
+ super.setText(text, type);
+ if (text instanceof Spanned) {
+ final ClickableSpan[] spans =
+ ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class);
+ if (spans.length > 0) {
+ setMovementMethod(LinkMovementMethod.getInstance());
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/ListWithPopUpPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/ListWithPopUpPreference.java
new file mode 100644
index 000000000..cdd2cb85b
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/ListWithPopUpPreference.java
@@ -0,0 +1,147 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.DrawableRes;
+import androidx.preference.ListPreference;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.google.android.material.appbar.MaterialToolbar;
+import com.google.android.material.bottomsheet.BottomSheetDialog;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.dialogadapter.ListPreferenceAdapter;
+
+public class ListWithPopUpPreference extends ListPreference {
+
+ private int[] mEntryIcons;
+ private Drawable[] mEntryDrawables;
+ private boolean mHasImages = false;
+ private ListPreferenceAdapter mAdapter;
+ private BottomSheetDialog bottomSheetDialog;
+ private RecyclerView recyclerView;
+
+ public ListWithPopUpPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+
+ }
+
+ public ListWithPopUpPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public ListWithPopUpPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public ListWithPopUpPreference(Context context) {
+ super(context);
+ }
+
+ public void setDrawables(@DrawableRes int[] drawables) {
+ mHasImages = true;
+ mEntryIcons = drawables;
+ }
+
+ public void setDrawables(Drawable[] drawables) {
+ mHasImages = true;
+ mEntryDrawables = drawables;
+ }
+
+ public void setHasImages(boolean hasImages) {
+ mHasImages = hasImages;
+ }
+
+ public void setAdapter(ListPreferenceAdapter adapter) {
+ mAdapter = adapter;
+ }
+
+ public void setAdapterType(int type) {
+ if (mAdapter != null)
+ mAdapter.setType(type);
+ }
+
+ public void setDefaultAdapterListener() {
+ mAdapter.setListener((view, position) -> {
+ if (callChangeListener(getEntryValues()[position].toString())) {
+ setValueIndex(position);
+ }
+ if (bottomSheetDialog != null) bottomSheetDialog.dismiss();
+ });
+ }
+
+ @Override
+ protected void onClick() {
+ bottomSheetDialog = new BottomSheetDialog(getContext());
+
+ View view = LayoutInflater.from(getContext()).inflate(R.layout.list_bottom_sheet_dialog_layout, (ViewGroup) null);
+ recyclerView = view.findViewById(R.id.select_dialog_listview);
+ MaterialToolbar toolbarPref = view.findViewById(R.id.toolbar_preference);
+ toolbarPref.setTitle(getTitle());
+ toolbarPref.setTitleCentered(true);
+ if (mAdapter != null && mAdapter.getType() == ListPreferenceAdapter.TYPE_BATTERY_ICONS) {
+ recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 3));
+ } else {
+ recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+ }
+ if (mAdapter == null) {
+ mAdapter = new ListPreferenceAdapter(getEntries(),
+ getEntryValues(),
+ mEntryIcons,
+ getKey(),
+ mHasImages,
+ (view1, position) -> {
+ if (callChangeListener(getEntryValues()[position].toString())) {
+ setValueIndex(position);
+ }
+ });
+ }
+ recyclerView.setAdapter(mAdapter);
+ bottomSheetDialog.setContentView(view);
+ bottomSheetDialog.show();
+
+ }
+
+ private int getValueIndex() {
+ return findIndexOfValue(getValue());
+ }
+
+ public void setValueIndex(int index) {
+ setValue(getEntryValues()[index].toString());
+ }
+
+ public void createDefaultAdapter() {
+ mAdapter = new ListPreferenceAdapter(getEntries(),
+ getEntryValues(),
+ mEntryIcons,
+ getKey(),
+ mHasImages,
+ (view1, position) -> {
+ if (callChangeListener(getEntryValues()[position].toString())) {
+ setValueIndex(position);
+ }
+ });
+ }
+
+ public void createDefaultAdapter(Drawable[] drawables) {
+ mHasImages = true;
+ mEntryDrawables = drawables;
+ mAdapter = new ListPreferenceAdapter(getEntries(),
+ getEntryValues(),
+ drawables,
+ getKey(),
+ mHasImages,
+ (view1, position) -> {
+ if (callChangeListener(getEntryValues()[position].toString())) {
+ setValueIndex(position);
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/MaterialColorPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/MaterialColorPreference.java
new file mode 100644
index 000000000..35e3a5bd0
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/MaterialColorPreference.java
@@ -0,0 +1,225 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import android.content.Context;
+import android.content.ContextWrapper;
+import android.content.res.TypedArray;
+import android.graphics.Color;
+import android.util.AttributeSet;
+
+import androidx.annotation.ColorInt;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentActivity;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.jaredrummler.android.colorpicker.ColorPanelView;
+import com.jaredrummler.android.colorpicker.ColorPickerDialog;
+import com.jaredrummler.android.colorpicker.ColorPickerDialogListener;
+import com.jaredrummler.android.colorpicker.ColorShape;
+
+import it.dhd.oxygencustomizer.R;
+
+public class MaterialColorPreference extends Preference implements ColorPickerDialogListener {
+
+ private static final int SIZE_NORMAL = 0;
+ private static final int SIZE_LARGE = 1;
+
+ private OnShowDialogListener onShowDialogListener;
+ private int color = Color.BLACK;
+ private boolean showDialog;
+ @ColorPickerDialog.DialogType
+ private int dialogType;
+ private int colorShape;
+ private boolean allowPresets;
+ private boolean allowCustom;
+ private boolean showAlphaSlider;
+ private boolean showColorShades;
+ private int previewSize;
+ private int[] presets;
+ private int dialogTitle;
+
+ public MaterialColorPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(attrs);
+ }
+
+ public MaterialColorPreference(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init(attrs);
+ }
+
+ private void init(AttributeSet attrs) {
+ setPersistent(true);
+ TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.ColorPreference);
+ showDialog = a.getBoolean(R.styleable.ColorPreference_cpv_showDialog, true);
+ //noinspection WrongConstant
+ dialogType = a.getInt(R.styleable.ColorPreference_cpv_dialogType, ColorPickerDialog.TYPE_PRESETS);
+ colorShape = a.getInt(R.styleable.ColorPreference_cpv_colorShape, ColorShape.CIRCLE);
+ allowPresets = a.getBoolean(R.styleable.ColorPreference_cpv_allowPresets, true);
+ allowCustom = a.getBoolean(R.styleable.ColorPreference_cpv_allowCustom, true);
+ showAlphaSlider = a.getBoolean(R.styleable.ColorPreference_cpv_showAlphaSlider, false);
+ showColorShades = a.getBoolean(R.styleable.ColorPreference_cpv_showColorShades, true);
+ previewSize = a.getInt(R.styleable.ColorPreference_cpv_previewSize, SIZE_NORMAL);
+ final int presetsResId = a.getResourceId(R.styleable.ColorPreference_cpv_colorPresets, 0);
+ dialogTitle = a.getResourceId(R.styleable.ColorPreference_cpv_dialogTitle, R.string.cpv_default_title);
+ if (presetsResId != 0) {
+ presets = getContext().getResources().getIntArray(presetsResId);
+ } else {
+ presets = ColorPickerDialog.MATERIAL_COLORS;
+ }
+ if (colorShape == ColorShape.CIRCLE) {
+ setWidgetLayoutResource(
+ previewSize == SIZE_LARGE ? R.layout.cpv_preference_circle_large : R.layout.cpv_preference_circle);
+ } else {
+ setWidgetLayoutResource(
+ previewSize == SIZE_LARGE ? R.layout.cpv_preference_square_large : R.layout.cpv_preference_square);
+ }
+ a.recycle();
+ initResource();
+ }
+
+ private void initResource() {
+ setLayoutResource(R.layout.custom_preference_color);
+ }
+
+ @Override
+ protected void onClick() {
+ super.onClick();
+ if (onShowDialogListener != null) {
+ onShowDialogListener.onShowColorPickerDialog((String) getTitle(), color);
+ } else if (showDialog) {
+ ColorPickerDialog dialog = ColorPickerDialog.newBuilder()
+ .setDialogType(dialogType)
+ .setDialogTitle(dialogTitle)
+ .setColorShape(colorShape)
+ .setPresets(presets)
+ .setAllowPresets(allowPresets)
+ .setAllowCustom(allowCustom)
+ .setShowAlphaSlider(showAlphaSlider)
+ .setShowColorShades(showColorShades)
+ .setColor(color)
+ .create();
+ dialog.setColorPickerDialogListener(this);
+ getActivity().getSupportFragmentManager()
+ .beginTransaction()
+ .add(dialog, getFragmentTag())
+ .commitAllowingStateLoss();
+ }
+ }
+
+ public FragmentActivity getActivity() {
+ Context context = getContext();
+ if (context instanceof FragmentActivity) {
+ return (FragmentActivity) context;
+ } else if (context instanceof ContextWrapper) {
+ Context baseContext = ((ContextWrapper) context).getBaseContext();
+ if (baseContext instanceof FragmentActivity) {
+ return (FragmentActivity) baseContext;
+ }
+ }
+ throw new IllegalStateException("Error getting activity from context");
+ }
+
+ @Override
+ public void onAttached() {
+ super.onAttached();
+ if (showDialog) {
+ ColorPickerDialog fragment =
+ (ColorPickerDialog) getActivity().getSupportFragmentManager().findFragmentByTag(getFragmentTag());
+ if (fragment != null) {
+ // re-bind preference to fragment
+ fragment.setColorPickerDialogListener(this);
+ }
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ ColorPanelView preview = (ColorPanelView) holder.itemView.findViewById(R.id.cpv_preference_preview_color_panel);
+ if (preview != null) {
+ preview.setColor(color);
+ }
+ }
+
+ @Override
+ protected void onSetInitialValue(Object defaultValue) {
+ super.onSetInitialValue(defaultValue);
+ if (defaultValue instanceof Integer) {
+ color = (Integer) defaultValue;
+ persistInt(color);
+ } else {
+ color = getPersistedInt(0xFF000000);
+ }
+ }
+
+ @Override
+ protected Object onGetDefaultValue(TypedArray a, int index) {
+ return a.getInteger(index, Color.BLACK);
+ }
+
+ @Override
+ public void onColorSelected(int dialogId, @ColorInt int color) {
+ saveValue(color);
+ }
+
+ @Override
+ public void onDialogDismissed(int dialogId) {
+ // no-op
+ }
+
+ /**
+ * Set the new color
+ *
+ * @param color The newly selected color
+ */
+ public void saveValue(@ColorInt int color) {
+ this.color = color;
+ persistInt(this.color);
+ notifyChanged();
+ callChangeListener(color);
+ }
+
+ /**
+ * Get the colors that will be shown in the {@link ColorPickerDialog}.
+ *
+ * @return An array of color ints
+ */
+ public int[] getPresets() {
+ return presets;
+ }
+
+ /**
+ * Set the colors shown in the {@link ColorPickerDialog}.
+ *
+ * @param presets An array of color ints
+ */
+ public void setPresets(@NonNull int[] presets) {
+ this.presets = presets;
+ }
+
+ /**
+ * The listener used for showing the {@link ColorPickerDialog}.
+ * Call {@link #saveValue(int)} after the user chooses a color.
+ * If this is set then it is up to you to show the dialog.
+ *
+ * @param listener The listener to show the dialog
+ */
+ public void setOnShowDialogListener(OnShowDialogListener listener) {
+ onShowDialogListener = listener;
+ }
+
+ /**
+ * The tag used for the {@link ColorPickerDialog}.
+ *
+ * @return The tag
+ */
+ public String getFragmentTag() {
+ return "color_" + getKey();
+ }
+
+ public interface OnShowDialogListener {
+
+ void onShowColorPickerDialog(String title, int currentColor);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/RecyclerPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/RecyclerPreference.java
new file mode 100644
index 000000000..4f023d67a
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/RecyclerPreference.java
@@ -0,0 +1,69 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.HapticFeedbackConstants;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+import androidx.recyclerview.widget.PagerSnapHelper;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.SnapHelper;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.adapters.SnapOnScrollListener;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+
+public class RecyclerPreference extends Preference {
+
+ private RecyclerView mRecyclerView;
+ private RecyclerView.LayoutManager mLayoutManager;
+ private RecyclerView.Adapter mAdapter;
+ private String mKey;
+ private int mDefaultValue;
+
+ public RecyclerPreference(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ setSelectable(false);
+ setLayoutResource(R.layout.custom_preference_recyclerview);
+
+ }
+
+ public RecyclerPreference(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ setSelectable(false);
+ }
+
+ public void setPreference(String key, int defaultValue) {
+ mKey = key;
+ mDefaultValue = defaultValue;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ mRecyclerView = (RecyclerView) holder.findViewById(R.id.recycler_view);
+ mRecyclerView.setLayoutManager(mLayoutManager);
+ mRecyclerView.setAdapter(mAdapter);
+ //mRecyclerView.setHasFixedSize(true);
+ mRecyclerView.scrollToPosition(PreferenceHelper.instance.mPreferences.getInt(mKey, mDefaultValue));
+ SnapHelper snapHelper = new PagerSnapHelper();
+ if (mRecyclerView.getOnFlingListener() == null) {
+ snapHelper.attachToRecyclerView(mRecyclerView);
+ SnapOnScrollListener snapOnScrollListener = new SnapOnScrollListener(snapHelper, SnapOnScrollListener.Behavior.NOTIFY_ON_SCROLL, position -> mRecyclerView.performHapticFeedback(HapticFeedbackConstants.CLOCK_TICK));
+ mRecyclerView.addOnScrollListener(snapOnScrollListener);
+ }
+ }
+
+ public void setAdapter(RecyclerView.Adapter adapter) {
+ mAdapter = adapter;
+ }
+
+ public void setLayoutManager(RecyclerView.LayoutManager layoutManager) {
+ mLayoutManager = layoutManager;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/SelectorWithWidgetPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/SelectorWithWidgetPreference.java
new file mode 100644
index 000000000..ad2edcd72
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/SelectorWithWidgetPreference.java
@@ -0,0 +1,186 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.preference.CheckBoxPreference;
+import androidx.preference.PreferenceViewHolder;
+
+import it.dhd.oxygencustomizer.R;
+
+public class SelectorWithWidgetPreference extends CheckBoxPreference {
+
+ /**
+ * Interface definition for a callback to be invoked when the preference is clicked.
+ */
+ public interface OnClickListener {
+ /**
+ * Called when a preference has been clicked.
+ *
+ * @param emiter The clicked preference
+ */
+ void onRadioButtonClicked(SelectorWithWidgetPreference emiter);
+ }
+
+ private OnClickListener mListener = null;
+ private View mAppendix;
+ private int mAppendixVisibility = -1;
+
+ private View mExtraWidgetContainer;
+ private ImageView mExtraWidget;
+ private boolean mIsCheckBox = false; // whether to display this button as a checkbox
+
+ private View.OnClickListener mExtraWidgetOnClickListener;
+
+ /**
+ * Perform inflation from XML and apply a class-specific base style.
+ *
+ * @param context The {@link Context} this is associated with, through which it can
+ * access the current theme, resources, etc.
+ * @param attrs The attributes of the XML tag that is inflating the preference
+ * @param defStyle An attribute in the current theme that contains a reference to a style
+ * resource that supplies default values for the view. Can be 0 to not
+ * look for defaults.
+ */
+ public SelectorWithWidgetPreference(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init();
+ }
+
+ /**
+ * Perform inflation from XML and apply a class-specific base style.
+ *
+ * @param context The {@link Context} this is associated with, through which it can
+ * access the current theme, resources, etc.
+ * @param attrs The attributes of the XML tag that is inflating the preference
+ */
+ public SelectorWithWidgetPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ /**
+ * Constructor to create a preference, which will display with a checkbox style.
+ *
+ * @param context The {@link Context} this is associated with.
+ * @param isCheckbox Whether this preference should display as a checkbox.
+ */
+ public SelectorWithWidgetPreference(Context context, boolean isCheckbox) {
+ super(context, null);
+ mIsCheckBox = isCheckbox;
+ init();
+ }
+
+ /**
+ * Constructor to create a preference.
+ *
+ * @param context The Context this is associated with.
+ */
+ public SelectorWithWidgetPreference(Context context) {
+ this(context, null);
+ }
+
+ /**
+ * Sets the callback to be invoked when this preference is clicked by the user.
+ *
+ * @param listener The callback to be invoked
+ */
+ public void setOnClickListener(OnClickListener listener) {
+ mListener = listener;
+ }
+
+ /**
+ * Processes a click on the preference.
+ */
+ @Override
+ public void onClick() {
+ if (mListener != null) {
+ mListener.onRadioButtonClicked(this);
+ }
+ }
+
+ /**
+ * Binds the created View to the data for this preference.
+ *
+ * This is a good place to grab references to custom Views in the layout and set
+ * properties on them.
+ *
+ *
Make sure to call through to the superclass's implementation.
+ *
+ * @param holder The ViewHolder that provides references to the views to fill in. These views
+ * will be recycled, so you should not hold a reference to them after this method
+ * returns.
+ */
+ @SuppressLint("WrongConstant")
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ View summaryContainer = holder.findViewById(R.id.summary_container);
+ if (summaryContainer != null) {
+ summaryContainer.setVisibility(
+ TextUtils.isEmpty(getSummary()) ? View.GONE : View.VISIBLE);
+ mAppendix = holder.findViewById(R.id.appendix);
+ if (mAppendix != null && mAppendixVisibility != -1) {
+ mAppendix.setVisibility(mAppendixVisibility);
+ }
+ }
+
+ mExtraWidget = (ImageView) holder.findViewById(R.id.selector_extra_widget);
+ mExtraWidgetContainer = holder.findViewById(R.id.selector_extra_widget_container);
+
+ setExtraWidgetOnClickListener(mExtraWidgetOnClickListener);
+ }
+
+ /**
+ * Set the visibility state of appendix view.
+ *
+ * @param visibility One of {@link View#VISIBLE}, {@link View#INVISIBLE}, or {@link View#GONE}.
+ */
+ public void setAppendixVisibility(int visibility) {
+ if (mAppendix != null) {
+ mAppendix.setVisibility(visibility);
+ }
+ mAppendixVisibility = visibility;
+ }
+
+ /**
+ * Sets the callback to be invoked when extra widget is clicked by the user.
+ *
+ * @param listener The callback to be invoked
+ */
+ public void setExtraWidgetOnClickListener(View.OnClickListener listener) {
+ mExtraWidgetOnClickListener = listener;
+
+ if (mExtraWidget == null || mExtraWidgetContainer == null) {
+ return;
+ }
+
+ mExtraWidget.setOnClickListener(mExtraWidgetOnClickListener);
+
+ mExtraWidgetContainer.setVisibility((mExtraWidgetOnClickListener != null)
+ ? View.VISIBLE : View.GONE);
+ }
+
+ /**
+ * Returns whether this preference is a checkbox.
+ */
+ public boolean isCheckBox() {
+ return mIsCheckBox;
+ }
+
+ private void init() {
+ if (mIsCheckBox) {
+ setWidgetLayoutResource(R.layout.preference_widget_checkbox);
+ } else {
+ setWidgetLayoutResource(R.layout.preference_widget_radiobutton);
+ }
+ setLayoutResource(R.layout.preference_selector_with_widget);
+ setIconSpaceReserved(false);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/SliderPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/SliderPreference.java
new file mode 100644
index 000000000..de2a85481
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/SliderPreference.java
@@ -0,0 +1,276 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+/*
+ * From Siavash79/rangesliderpreference
+ * https://github.com/siavash79/rangesliderpreference
+ */
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.util.JsonReader;
+import android.util.JsonWriter;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.slider.RangeSlider;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+import java.util.Scanner;
+
+import it.dhd.oxygencustomizer.R;
+
+public class SliderPreference extends Preference {
+ @SuppressWarnings("unused")
+ private static final String TAG = "Slider Preference";
+ private float valueFrom;
+ private float valueTo;
+ private final float tickInterval;
+ private boolean showResetButton;
+ public final List defaultValue = new ArrayList<>();
+ public RangeSlider slider;
+ private MaterialButton mResetButton;
+ private TextView sliderValue;
+ int valueCount;
+
+ boolean updateConstantly, showValueLabel;
+
+ @SuppressWarnings("unused")
+ public SliderPreference(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ setSelectable(false);
+ }
+
+ public SliderPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ setSelectable(false);
+ setLayoutResource(R.layout.custom_preference_slider);
+
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SliderPreference);
+ updateConstantly = a.getBoolean(R.styleable.SliderPreference_updatesContinuously, false);
+ valueCount = a.getInteger(R.styleable.SliderPreference_valueCount, 1);
+ valueFrom = a.getFloat(R.styleable.SliderPreference_minVal, 0f);
+ valueTo = a.getFloat(R.styleable.SliderPreference_maxVal, 100f);
+ tickInterval = a.getFloat(R.styleable.SliderPreference_tickInterval, 1f);
+ showResetButton = a.getBoolean(R.styleable.SliderPreference_showResetButton, true);
+ showValueLabel = a.getBoolean(R.styleable.SliderPreference_showValueLabel, true);
+ String defaultValStr = a.getString(androidx.preference.R.styleable.Preference_defaultValue);
+
+ try {
+ Scanner scanner = new Scanner(defaultValStr);
+ scanner.useDelimiter(",");
+ scanner.useLocale(Locale.ENGLISH);
+
+ while (scanner.hasNext()) {
+ defaultValue.add(scanner.nextFloat());
+ }
+ } catch (Exception ignored) {
+ Log.e(TAG, String.format("SliderPreference: Error parsing default values for key: %s", getKey()));
+ }
+
+ a.recycle();
+ }
+
+ public void savePrefs() {
+ setValues(getSharedPreferences(), getKey(), slider.getValues());
+ }
+
+ @SuppressWarnings("UnusedReturnValue")
+ public static boolean setValues(SharedPreferences sharedPreferences, String key, List values) {
+ try {
+ StringWriter writer = new StringWriter();
+ JsonWriter jsonWriter = new JsonWriter(writer);
+ jsonWriter.beginObject();
+ jsonWriter.name("");
+ jsonWriter.beginArray();
+
+ for (float value : values) {
+ jsonWriter.value(value);
+ }
+ jsonWriter.endArray();
+ jsonWriter.endObject();
+ jsonWriter.close();
+ String jsonString = writer.toString();
+
+ sharedPreferences.edit().putString(key, jsonString).apply();
+
+ return true;
+
+ } catch (Exception ignored) {
+ return false;
+ }
+ }
+
+ public void syncState() {
+ boolean needsCommit = false;
+
+ List values = getValues(getSharedPreferences(), getKey(), valueFrom);
+ BigDecimal step = new BigDecimal(String.valueOf(slider.getStepSize())); //float and double are not accurate when it comes to decimal points
+
+ for (int i = 0; i < values.size(); i++) {
+ BigDecimal round = new BigDecimal(Math.round(values.get(i) / slider.getStepSize()));
+ double v = Math.min(Math.max(step.multiply(round).doubleValue(), slider.getValueFrom()), slider.getValueTo());
+ if (v != values.get(i)) {
+ values.set(i, (float) v);
+ needsCommit = true;
+ }
+ }
+ if (values.size() < valueCount) {
+ needsCommit = true;
+ values = defaultValue;
+ while (values.size() < valueCount) {
+ values.add(valueFrom);
+ }
+ } else if (values.size() > valueCount) {
+ needsCommit = true;
+ while (values.size() > valueCount) {
+ values.remove(values.size() - 1);
+ }
+ }
+
+ try {
+ slider.setValues(values);
+ if (needsCommit) savePrefs();
+ } catch (Throwable t) {
+ values.clear();
+ }
+ }
+
+ RangeSlider.OnChangeListener changeListener = (slider, value, fromUser) -> {
+ if (!getKey().equals(slider.getTag())) return;
+
+ if (updateConstantly && fromUser) {
+ savePrefs();
+ }
+ };
+
+ RangeSlider.OnSliderTouchListener sliderTouchListener = new RangeSlider.OnSliderTouchListener() {
+ @Override
+ public void onStartTrackingTouch(@NonNull RangeSlider slider) {
+ }
+
+ @Override
+ public void onStopTrackingTouch(@NonNull RangeSlider slider) {
+ if (!getKey().equals(slider.getTag())) return;
+
+ if (!updateConstantly) {
+ savePrefs();
+ }
+ }
+ };
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ slider = (RangeSlider) holder.findViewById(R.id.slider);
+ slider.setTag(getKey());
+
+ slider.addOnSliderTouchListener(sliderTouchListener);
+ slider.addOnChangeListener(changeListener);
+
+ if (showResetButton) {
+ mResetButton = (MaterialButton) holder.findViewById(R.id.reset_button);
+ mResetButton.setVisibility(View.VISIBLE);
+ mResetButton.setOnClickListener(v -> {
+ slider.setValues(defaultValue);
+ savePrefs();
+ });
+ } else {
+ mResetButton.setVisibility(View.GONE);
+ }
+
+ sliderValue = (TextView) holder.findViewById(R.id.seekbar_value);
+
+ slider.setValueFrom(valueFrom);
+ slider.setValueTo(valueTo);
+ slider.setStepSize(tickInterval);
+
+ syncState();
+ }
+
+ public void setMin(float value) {
+ valueFrom = value;
+ slider.setValueFrom(value);
+ }
+
+ public void setMax(float value) {
+ valueTo = value;
+ slider.setValueTo(value);
+ }
+
+ public static List getValues(SharedPreferences prefs, String key, float defaultValue) {
+ List values;
+
+ try {
+ String JSONString = prefs.getString(key, "");
+ values = getValues(JSONString);
+ } catch (Exception ignored) {
+ try {
+ float value = prefs.getFloat(key, defaultValue);
+ values = Collections.singletonList(value);
+ } catch (Exception ignored2) {
+ try {
+ int value = prefs.getInt(key, Math.round(defaultValue));
+ values = Collections.singletonList((float) value);
+ } catch (Exception ignored3) {
+ values = Collections.singletonList(defaultValue);
+ }
+ }
+ }
+ return values;
+ }
+
+ public static List getValues(String JSONString) throws Exception {
+ List values = new ArrayList<>();
+
+ if (JSONString.trim().isEmpty()) return values;
+
+ JsonReader jsonReader = new JsonReader(new StringReader(JSONString));
+
+ jsonReader.beginObject();
+ try {
+ jsonReader.nextName();
+ jsonReader.beginArray();
+ } catch (Exception ignored) {
+ }
+
+ while (jsonReader.hasNext()) {
+ try {
+ jsonReader.nextName();
+ } catch (Exception ignored) {
+ }
+ values.add((float) jsonReader.nextDouble());
+ }
+
+ return values;
+ }
+
+ public static float getSingleFloatValue(SharedPreferences prefs, String key, float defaultValue) {
+ float result = defaultValue;
+
+ try {
+ result = getValues(prefs, key, defaultValue).get(0);
+ } catch (Throwable ignored) {
+ }
+
+ return result;
+ }
+
+ public static int getSingleIntValue(SharedPreferences prefs, String key, int defaultValue) {
+ return Math.round(getSingleFloatValue(prefs, key, defaultValue));
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/TopIntroPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/TopIntroPreference.java
new file mode 100644
index 000000000..aaef95bae
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/TopIntroPreference.java
@@ -0,0 +1,32 @@
+package it.dhd.oxygencustomizer.customprefs;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import it.dhd.oxygencustomizer.R;
+
+public class TopIntroPreference extends Preference {
+
+ public TopIntroPreference(Context context) {
+ super(context);
+ setLayoutResource(R.layout.top_intro_preference);
+ setSelectable(false);
+ }
+
+ public TopIntroPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ setLayoutResource(R.layout.top_intro_preference);
+ setSelectable(false);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ holder.setDividerAllowedAbove(false);
+ holder.setDividerAllowedBelow(false);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/dialogadapter/ListPreferenceAdapter.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/dialogadapter/ListPreferenceAdapter.java
new file mode 100644
index 000000000..aefcd0407
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/dialogadapter/ListPreferenceAdapter.java
@@ -0,0 +1,264 @@
+package it.dhd.oxygencustomizer.customprefs.dialogadapter;
+
+import static it.dhd.oxygencustomizer.OxygenCustomizer.getAppContext;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.core.content.ContextCompat;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.databinding.BatteryIconOptionsBinding;
+import it.dhd.oxygencustomizer.databinding.PreferenceListItemBinding;
+import it.dhd.oxygencustomizer.databinding.QsHeaderImageOptionsBinding;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+import it.dhd.oxygencustomizer.xposed.utils.DrawableConverter;
+
+public class ListPreferenceAdapter extends RecyclerView.Adapter {
+
+ public static final int DEFAULT_TYPE = 0;
+ public static final int TYPE_QS_IMAGE = 1;
+ public static final int TYPE_BATTERY_ICONS = 2;
+ private final CharSequence[] mEntries;
+ private final CharSequence[] mEntryValues;
+ private final int[] mEntryIcons;
+ private final Drawable[] mEntryDrawables;
+ private final String mKey;
+ private final boolean mHasImage;
+ private onItemClickListener onItemClickListener;
+ private String mValue;
+ private int mType = DEFAULT_TYPE;
+ private List mQsHeaderImages;
+ private static final int HEADER_COUNT = 24;
+ String mSelectedImage;
+ String mAppliedImage;
+
+
+ public ListPreferenceAdapter(CharSequence[] entries,
+ CharSequence[] entryValues,
+ int[] entryIcons,
+ String key,
+ boolean hasImage,
+ onItemClickListener onItemClickListener) {
+ this.mEntries = entries;
+ this.mEntryValues = entryValues;
+ this.mEntryIcons = entryIcons;
+ this.mEntryDrawables = null;
+ this.mKey = key;
+ this.mHasImage = hasImage;
+ this.onItemClickListener = onItemClickListener;
+ this.mType = DEFAULT_TYPE;
+ mQsHeaderImages = loadHeadersList();
+ }
+
+ public ListPreferenceAdapter(CharSequence[] entries,
+ CharSequence[] entryValues,
+ Drawable[] entryDrawables,
+ String key,
+ boolean hasImage,
+ onItemClickListener onItemClickListener) {
+ this.mEntries = entries;
+ this.mEntryValues = entryValues;
+ this.mEntryDrawables = entryDrawables;
+ this.mEntryIcons = null;
+ this.mKey = key;
+ this.mHasImage = hasImage;
+ this.onItemClickListener = onItemClickListener;
+ this.mType = DEFAULT_TYPE;
+ mQsHeaderImages = loadHeadersList();
+ }
+
+ private List loadHeadersList() {
+ List headersList = new ArrayList(HEADER_COUNT);
+ for (int i = 1; i <= HEADER_COUNT; i++) {
+ headersList.add("qs_header_image_" + i);
+ }
+ return headersList;
+ }
+
+ public void setListener(onItemClickListener onItemClickListener) {
+ this.onItemClickListener = onItemClickListener;
+ }
+
+ @NonNull
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ mValue = PreferenceHelper.instance.mPreferences.getString(mKey, "");
+ PreferenceListItemBinding binding = PreferenceListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
+ QsHeaderImageOptionsBinding qsHeaderImageOptionsBinding = QsHeaderImageOptionsBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
+ BatteryIconOptionsBinding batteryIconOptionsBinding = BatteryIconOptionsBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
+ if (mType == TYPE_QS_IMAGE) {
+ return new QsImageViewHolder(qsHeaderImageOptionsBinding);
+ } else if (mType == TYPE_BATTERY_ICONS) {
+ return new BatteryIconsViewHolder(batteryIconOptionsBinding);
+ } else {
+ return new ViewHolder(binding);
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+ if (mType == TYPE_QS_IMAGE) {
+ int currentHeaderNumber = getCurrentHeaderNumber();
+
+ String loadedImage = mQsHeaderImages.get(position);
+
+ Bitmap background = getBitmap(((QsImageViewHolder) holder).binding.qsHeaderImage.getContext(), loadedImage);
+
+ ((QsImageViewHolder) holder).binding.qsHeaderImage.setImageBitmap(DrawableConverter.getRoundedCornerBitmap(background, 20));
+
+ if (currentHeaderNumber == (position + 1)) {
+ mAppliedImage = loadedImage;
+ if (mSelectedImage == null) {
+ mSelectedImage = loadedImage;
+ }
+ }
+
+ if (PreferenceHelper.instance.mPreferences.getInt("qs_header_image_number", -1) == (position + 1)) {
+ ((QsImageViewHolder) holder).binding.rootLayout.setStrokeColor(getAppContext().getColor(android.R.color.system_accent1_400));
+ } else {
+ ((QsImageViewHolder) holder).binding.rootLayout.setStrokeColor(Color.TRANSPARENT);
+ }
+
+ holder.itemView.setOnClickListener(v -> {
+ PreferenceHelper.instance.mPreferences.edit().putInt("qs_header_image_number", (position + 1)).apply();
+ onItemClickListener.onItemClick(v, position);
+ notifyItemChanged(currentHeaderNumber);
+ notifyItemChanged(position);
+ });
+ } else if (mType == TYPE_BATTERY_ICONS) {
+ ((BatteryIconsViewHolder)holder).binding.typeTitle.setText(mEntries[position]);
+
+ if (mHasImage) {
+ if (mEntryDrawables != null)
+ ((BatteryIconsViewHolder) holder).binding.batteryIcon.setImageDrawable(mEntryDrawables[position]);
+ else
+ ((BatteryIconsViewHolder) holder).binding.batteryIcon.setImageDrawable(ContextCompat.getDrawable(((BatteryIconsViewHolder)holder).binding.getRoot().getContext(), mEntryIcons[position]));
+ } else
+ ((BatteryIconsViewHolder)holder).binding.batteryIcon.setVisibility(View.GONE);
+
+ if (TextUtils.equals(mEntryValues[position].toString(), mValue)) {
+ ((BatteryIconsViewHolder)holder).binding.rootLayout.setStrokeColor(getAppContext().getColor(android.R.color.system_accent1_400));
+ } else {
+ ((BatteryIconsViewHolder)holder).binding.rootLayout.setStrokeColor(Color.TRANSPARENT);
+ }
+
+ ((BatteryIconsViewHolder)holder).binding.rootLayout.setOnClickListener(v -> {
+ int prev = Integer.parseInt(mValue);
+ onItemClickListener.onItemClick(v, position);
+ notifyItemChanged(prev);
+ notifyItemChanged(position);
+ mValue = String.valueOf(position);
+ });
+ } else {
+ ((ViewHolder)holder).binding.text.setText(mEntries[position]);
+ if (mHasImage) {
+ if (mEntryIcons != null && mEntryIcons.length > 0)
+ ((ViewHolder)holder).binding.image.setImageDrawable(ContextCompat.getDrawable(((ViewHolder)holder).binding.getRoot().getContext(), mEntryIcons[position]));
+ else if (mEntryDrawables != null && mEntryDrawables.length > 0)
+ ((ViewHolder)holder).binding.image.setImageDrawable(mEntryDrawables[position]);
+ } else
+ ((ViewHolder)holder).binding.image.setVisibility(View.GONE);
+
+
+ if (TextUtils.equals(mEntryValues[position].toString(), mValue)) {
+ ((ViewHolder)holder).binding.rootLayout.setStrokeColor(getAppContext().getColor(android.R.color.system_accent1_400));
+ } else {
+ ((ViewHolder)holder).binding.rootLayout.setStrokeColor(Color.TRANSPARENT);
+ }
+
+ ((ViewHolder)holder).binding.rootLayout.setOnClickListener(v -> {
+ int previousPosition = Integer.parseInt(mValue);
+ onItemClickListener.onItemClick(v, position);
+ mValue = String.valueOf(position);
+ notifyItemChanged(previousPosition);
+ notifyItemChanged(position);
+ });
+ }
+
+ }
+
+ private int getCurrentHeaderNumber() {
+ return PreferenceHelper.instance.mPreferences.getInt("qs_header_image_number", -1);
+ }
+
+ @Override
+ public int getItemCount() {
+ if (mType == TYPE_QS_IMAGE)
+ return mQsHeaderImages.size();
+ else
+ return mEntries.length;
+ }
+
+
+ public void setType(int type) {
+ mType = type;
+ }
+
+ private Bitmap getBitmap(Context context, String drawableName) {
+ return DrawableConverter.drawableToBitmap(getDrawable(context, drawableName));
+ }
+
+ public Drawable getDrawable(Context context, String drawableName) {
+ Resources res = context.getResources();
+ int resId = res.getIdentifier(drawableName, "drawable", BuildConfig.APPLICATION_ID);
+ return ContextCompat.getDrawable(context, resId);
+ }
+
+ public int getType() {
+ return mType;
+ }
+
+ public static class ViewHolder extends RecyclerView.ViewHolder {
+
+ private final PreferenceListItemBinding binding;
+
+ ViewHolder(@NonNull PreferenceListItemBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ }
+
+ public static class QsImageViewHolder extends RecyclerView.ViewHolder {
+
+ private final QsHeaderImageOptionsBinding binding;
+
+ QsImageViewHolder(@NonNull QsHeaderImageOptionsBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ }
+
+ public static class BatteryIconsViewHolder extends RecyclerView.ViewHolder {
+
+ private final BatteryIconOptionsBinding binding;
+
+ BatteryIconsViewHolder(@NonNull BatteryIconOptionsBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ }
+
+ /**
+ * Interface for the click on the item
+ */
+ public interface onItemClickListener {
+ void onItemClick(View view, int position);
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/AnimationUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/AnimationUtils.java
new file mode 100644
index 000000000..85dc50b73
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/AnimationUtils.java
@@ -0,0 +1,89 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ArgbEvaluator;
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.view.View;
+import android.view.ViewAnimationUtils;
+
+import androidx.interpolator.view.animation.FastOutSlowInInterpolator;
+
+public class AnimationUtils {
+ public static void registerCircularRevealAnimation(final Context context, final View view, final RevealAnimationSetting revealSettings) {
+ final int startColor = revealSettings.getColorAccent();
+ final int endColor = getBackgroundColor(view);
+
+ view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
+ @Override
+ public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
+ v.removeOnLayoutChangeListener(this);
+ view.setVisibility(View.VISIBLE);
+ int cx = revealSettings.getCenterX();
+ int cy = revealSettings.getCenterY();
+ int width = revealSettings.getWidth();
+ int height = revealSettings.getHeight();
+ int duration = context.getResources().getInteger(android.R.integer.config_longAnimTime);
+
+ //Simply use the diagonal of the view
+ float finalRadius = (float) Math.sqrt(width * width + height * height);
+ Animator anim = ViewAnimationUtils.createCircularReveal(v, cx, cy, 0, finalRadius).setDuration(duration);
+ anim.setInterpolator(new FastOutSlowInInterpolator());
+ anim.start();
+ startColorAnimation(view, startColor, endColor, duration);
+ }
+ });
+ }
+
+ private static void startColorAnimation(final View view, final int startColor, final int endColor, int duration) {
+ ValueAnimator anim = new ValueAnimator();
+ anim.setIntValues(startColor, endColor);
+ anim.setEvaluator(new ArgbEvaluator());
+ anim.addUpdateListener(valueAnimator -> view.setBackgroundColor((Integer) valueAnimator.getAnimatedValue()));
+ anim.setDuration(duration);
+ anim.start();
+ }
+
+ @SuppressWarnings("unused")
+ public static void startCircularExitAnimation(final Context context, final View view, final RevealAnimationSetting revealSettings, final OnDismissedListener listener) {
+ final int startColor = getBackgroundColor(view);
+ final int endColor = revealSettings.getColorAccent();
+
+ int cx = revealSettings.getCenterX();
+ int cy = revealSettings.getCenterY();
+ int width = revealSettings.getWidth();
+ int height = revealSettings.getHeight();
+ int duration = context.getResources().getInteger(android.R.integer.config_longAnimTime);
+
+ float initRadius = (float) Math.sqrt(width * width + height * height);
+ Animator anim = ViewAnimationUtils.createCircularReveal(view, cx, cy, initRadius, 0);
+ anim.setDuration(duration);
+ anim.setInterpolator(new FastOutSlowInInterpolator());
+ anim.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ view.setVisibility(View.INVISIBLE);
+ listener.onDismissed();
+ }
+ });
+ anim.start();
+ startColorAnimation(view, startColor, endColor, duration);
+ }
+
+ private static int getBackgroundColor(View view) {
+ int color = Color.TRANSPARENT;
+ Drawable background = view.getBackground();
+ if (background instanceof ColorDrawable) {
+ color = ((ColorDrawable) background).getColor();
+ }
+ return color;
+ }
+
+ public interface OnDismissedListener {
+ void onDismissed();
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/Breadcrumb.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/Breadcrumb.java
new file mode 100644
index 000000000..c8e20a612
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/Breadcrumb.java
@@ -0,0 +1,25 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.text.TextUtils;
+
+import androidx.annotation.Nullable;
+
+class Breadcrumb {
+ private Breadcrumb() {
+
+ }
+
+ /**
+ * Joins two breadcrumbs
+ *
+ * @param s1 First breadcrumb, might be null
+ * @param s2 Second breadcrumb
+ * @return Both breadcrumbs joined
+ */
+ static String concat(@Nullable String s1, String s2) {
+ if (TextUtils.isEmpty(s1)) {
+ return s2;
+ }
+ return s1 + " > " + s2;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/HistoryItem.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/HistoryItem.java
new file mode 100644
index 000000000..46608235c
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/HistoryItem.java
@@ -0,0 +1,28 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+class HistoryItem extends ListItem {
+ static final int TYPE = 1;
+ private final String term;
+
+ HistoryItem(String term) {
+ super();
+ this.term = term;
+ }
+
+ @Override
+ public int getType() {
+ return TYPE;
+ }
+
+ String getTerm() {
+ return term;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof HistoryItem) {
+ return ((HistoryItem) obj).term.equals(term);
+ }
+ return false;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/ListItem.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/ListItem.java
new file mode 100644
index 000000000..6ce6cee5b
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/ListItem.java
@@ -0,0 +1,5 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+public abstract class ListItem {
+ public abstract int getType();
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/PreferenceItem.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/PreferenceItem.java
new file mode 100644
index 000000000..5c3a88120
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/PreferenceItem.java
@@ -0,0 +1,175 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.annotation.SuppressLint;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.text.TextUtils;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.XmlRes;
+
+import org.apache.commons.text.similarity.FuzzyScore;
+
+import java.util.ArrayList;
+import java.util.Locale;
+
+public class PreferenceItem extends ListItem implements Parcelable {
+ public static final Creator CREATOR = new Creator<>() {
+ @Override
+ public PreferenceItem createFromParcel(Parcel in) {
+ return new PreferenceItem(in);
+ }
+
+ @Override
+ public PreferenceItem[] newArray(int size) {
+ return new PreferenceItem[size];
+ }
+ };
+ static final int TYPE = 2;
+ @SuppressLint("ConstantLocale")
+ private static final FuzzyScore fuzzyScore = new FuzzyScore(Locale.getDefault());
+ String title;
+ String summary;
+ String key;
+ String entries;
+ String breadcrumbs;
+ String keywords;
+ ArrayList keyBreadcrumbs = new ArrayList<>();
+ int resId;
+ private float lastScore = 0;
+ private String lastKeyword = null;
+
+ PreferenceItem() {
+ }
+
+ private PreferenceItem(Parcel in) {
+ this.title = in.readString();
+ this.summary = in.readString();
+ this.key = in.readString();
+ this.breadcrumbs = in.readString();
+ this.keywords = in.readString();
+ this.resId = in.readInt();
+ }
+
+ boolean hasData() {
+ return title != null || summary != null;
+ }
+
+ boolean matchesFuzzy(String keyword) {
+ return getScore(keyword) > 0.3;
+ }
+
+ boolean matches(String keyword) {
+ Locale locale = Locale.getDefault();
+ return getInfo().toLowerCase(locale).contains(keyword.toLowerCase(locale));
+ }
+
+ float getScore(String keyword) {
+ if (TextUtils.isEmpty(keyword)) {
+ return 0;
+ } else if (TextUtils.equals(lastKeyword, keyword)) {
+ return lastScore;
+ }
+ String info = getInfo();
+
+ float score = fuzzyScore.fuzzyScore(info, "ø" + keyword);
+ float maxScore = (keyword.length() + 1) * 3 - 2; // First item can not get +2 bonus score
+
+ lastScore = score / maxScore;
+ lastKeyword = keyword;
+ return lastScore;
+ }
+
+ private String getInfo() {
+ StringBuilder infoBuilder = new StringBuilder();
+ if (!TextUtils.isEmpty(title)) {
+ infoBuilder.append("ø").append(title);
+ }
+ if (!TextUtils.isEmpty(summary)) {
+ infoBuilder.append("ø").append(summary);
+ }
+ if (!TextUtils.isEmpty(entries)) {
+ infoBuilder.append("ø").append(entries);
+ }
+ if (!TextUtils.isEmpty(breadcrumbs)) {
+ infoBuilder.append("ø").append(breadcrumbs);
+ }
+ if (!TextUtils.isEmpty(keywords)) {
+ infoBuilder.append("ø").append(keywords);
+ }
+ return infoBuilder.toString();
+ }
+
+ @SuppressWarnings("unused")
+ public PreferenceItem withKey(String key) {
+ this.key = key;
+ return this;
+ }
+
+ @SuppressWarnings("unused")
+ public PreferenceItem withSummary(String summary) {
+ this.summary = summary;
+ return this;
+ }
+
+ @SuppressWarnings("unused")
+ public PreferenceItem withTitle(String title) {
+ this.title = title;
+ return this;
+ }
+
+ @SuppressWarnings("unused")
+ public PreferenceItem withEntries(String entries) {
+ this.entries = entries;
+ return this;
+ }
+
+ @SuppressWarnings("unused")
+ public PreferenceItem withKeywords(String keywords) {
+ this.keywords = keywords;
+ return this;
+ }
+
+ @SuppressWarnings("unused")
+ public PreferenceItem withResId(@XmlRes Integer resId) {
+ this.resId = resId;
+ return this;
+ }
+
+ /**
+ * @param breadcrumb The breadcrumb to add
+ * @return For chaining
+ */
+ @SuppressWarnings("unused")
+ public PreferenceItem addBreadcrumb(String breadcrumb) {
+ this.breadcrumbs = Breadcrumb.concat(this.breadcrumbs, breadcrumb);
+ return this;
+ }
+
+ @NonNull
+ @Override
+ public String toString() {
+ return "PreferenceItem: " + title + " " + summary + " " + key;
+ }
+
+ @Override
+ public int getType() {
+ return TYPE;
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel parcel, int i) {
+ parcel.writeString(title);
+ parcel.writeString(summary);
+ parcel.writeString(key);
+ parcel.writeString(breadcrumbs);
+ parcel.writeString(keywords);
+ parcel.writeInt(resId);
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/PreferenceParser.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/PreferenceParser.java
new file mode 100644
index 000000000..d3ed3b49d
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/PreferenceParser.java
@@ -0,0 +1,229 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import static androidx.preference.PreferenceManager.getDefaultSharedPreferences;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import org.xmlpull.v1.XmlPullParser;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+import it.dhd.oxygencustomizer.xposed.utils.ExtendedSharedPreferences;
+
+class PreferenceParser {
+ private static final int MAX_RESULTS = 10;
+ private static final String NS_ANDROID = "http://schemas.android.com/apk/res/android";
+ private static final String NS_SEARCH = "http://schemas.android.com/apk/it.dhd.oxygencustomizer.customprefs.preferencesearch";
+ private static final List BLACKLIST = Arrays.asList(SearchPreference.class.getName(), "PreferenceCategory");
+ private static final List CONTAINERS = Arrays.asList("PreferenceCategory", "PreferenceScreen");
+ private final Context mContext;
+ private final ArrayList allEntries = new ArrayList<>();
+
+ PreferenceParser(Context context) {
+ mContext = context;
+ PreferenceHelper.init(ExtendedSharedPreferences.from(getDefaultSharedPreferences(context.createDeviceProtectedStorageContext())));
+ }
+
+ @SuppressWarnings("UseCompareMethod")
+ private static int floatCompare(float x, float y) {
+ return (x < y) ? -1 : ((x == y) ? 0 : 1);
+ }
+
+ void addResourceFile(SearchConfiguration.SearchIndexItem item) {
+ allEntries.addAll(parseFile(item));
+ }
+
+ void addPreferenceItems(ArrayList preferenceItems) {
+ preferenceItems.removeIf(item -> !PreferenceHelper.isVisible(item.key));
+ allEntries.addAll(preferenceItems);
+ }
+
+ private ArrayList parseFile(SearchConfiguration.SearchIndexItem item) {
+ ArrayList results = new ArrayList<>();
+ XmlPullParser xpp = mContext.getResources().getXml(item.getResId());
+ List bannedKeys = item.getSearchConfiguration().getBannedKeys();
+
+ try {
+ xpp.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
+ xpp.setFeature(XmlPullParser.FEATURE_REPORT_NAMESPACE_ATTRIBUTES, true);
+ ArrayList breadcrumbs = new ArrayList<>();
+ ArrayList keyBreadcrumbs = new ArrayList<>();
+ if (!TextUtils.isEmpty(item.getBreadcrumb())) {
+ breadcrumbs.add(item.getBreadcrumb());
+ }
+ while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) {
+ if (xpp.getEventType() == XmlPullParser.START_TAG) {
+ PreferenceItem result = parseSearchResult(xpp);
+ result.resId = item.getResId();
+
+ try {
+ if (!isSearchable(result)) {
+ if (!bannedKeys.contains(result.key))
+ bannedKeys.add(result.key);
+ } else
+ bannedKeys.remove(result.key);
+ } catch (Exception ignored) {
+ }
+
+ if (!BLACKLIST.contains(xpp.getName())
+ && result.hasData()
+ && !"true".equals(getAttribute(xpp, NS_SEARCH, "ignore"))
+ && !bannedKeys.contains(result.key)
+ && shouldAddPreferenceItem(results, result)) {
+ result.breadcrumbs = joinBreadcrumbs(breadcrumbs);
+ result.keyBreadcrumbs = cleanupKeyBreadcrumbs(keyBreadcrumbs);
+ if (!results.contains(result)) {
+ results.add(result);
+ }
+ }
+ if (CONTAINERS.contains(xpp.getName())) {
+ breadcrumbs.add(result.title == null ? "" : result.title);
+ }
+ if (xpp.getName().equals("PreferenceScreen")) {
+ keyBreadcrumbs.add(getAttribute(xpp, "key"));
+ }
+ } else if (xpp.getEventType() == XmlPullParser.END_TAG && CONTAINERS.contains(xpp.getName())) {
+ breadcrumbs.remove(breadcrumbs.size() - 1);
+ if (xpp.getName().equals("PreferenceScreen")) {
+ keyBreadcrumbs.remove(keyBreadcrumbs.size() - 1);
+ }
+ }
+
+ xpp.next();
+ }
+ } catch (
+ Exception e) {
+ e.printStackTrace();
+ }
+ return results;
+ }
+
+ private boolean isSearchable(PreferenceItem result) {
+ if (TextUtils.isEmpty(result.key)) return false;
+ return PreferenceHelper.isVisible(result.key);
+ }
+
+ private boolean shouldAddPreferenceItem(ArrayList results, PreferenceItem result) {
+ boolean isAlreadyAdded = false;
+ for (PreferenceItem item : results) {
+ if (item.key.equals(result.key) && item.resId == result.resId) {
+ isAlreadyAdded = true;
+ break;
+ }
+ }
+ return !isAlreadyAdded;
+ }
+
+ private ArrayList cleanupKeyBreadcrumbs(ArrayList keyBreadcrumbs) {
+ ArrayList result = new ArrayList<>();
+ for (String keyBreadcrumb : keyBreadcrumbs) {
+ if (keyBreadcrumb != null) {
+ result.add(keyBreadcrumb);
+ }
+ }
+ return result;
+ }
+
+ private String joinBreadcrumbs(ArrayList breadcrumbs) {
+ String result = "";
+ for (String crumb : breadcrumbs) {
+ if (!TextUtils.isEmpty(crumb)) {
+ result = Breadcrumb.concat(result, crumb);
+ }
+ }
+ return result;
+ }
+
+ private String getAttribute(XmlPullParser xpp, @Nullable String namespace, @NonNull String attribute) {
+ for (int i = 0; i < xpp.getAttributeCount(); i++) {
+ if (attribute.equals(xpp.getAttributeName(i)) &&
+ (namespace == null || namespace.equals(xpp.getAttributeNamespace(i)))) {
+ return xpp.getAttributeValue(i);
+ }
+ }
+ return null;
+ }
+
+ private String getAttribute(XmlPullParser xpp, @NonNull String attribute) {
+ if (hasAttribute(xpp, NS_SEARCH, attribute)) {
+ return getAttribute(xpp, NS_SEARCH, attribute);
+ } else {
+ return getAttribute(xpp, NS_ANDROID, attribute);
+ }
+ }
+
+ @SuppressWarnings("SameParameterValue")
+ private boolean hasAttribute(XmlPullParser xpp, @Nullable String namespace, @NonNull String attribute) {
+ return getAttribute(xpp, namespace, attribute) != null;
+ }
+
+ private PreferenceItem parseSearchResult(XmlPullParser xpp) {
+ PreferenceItem result = new PreferenceItem();
+ result.title = readString(getAttribute(xpp, "title"));
+ result.summary = readString(getAttribute(xpp, "summary"));
+ result.key = readString(getAttribute(xpp, "key"));
+ result.entries = readStringArray(getAttribute(xpp, "entries"));
+ result.keywords = readString(getAttribute(xpp, NS_SEARCH, "keywords"));
+ return result;
+ }
+
+ private String readStringArray(@Nullable String s) {
+ if (s == null) {
+ return null;
+ }
+ if (s.startsWith("@")) {
+ try {
+ int id = Integer.parseInt(s.substring(1));
+ String[] elements = mContext.getResources().getStringArray(id);
+ return TextUtils.join(",", elements);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return s;
+ }
+
+ private String readString(@Nullable String s) {
+ if (s == null) {
+ return null;
+ }
+ if (s.startsWith("@")) {
+ try {
+ int id = Integer.parseInt(s.substring(1));
+ return mContext.getString(id);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return s;
+ }
+
+ List searchFor(final String keyword, boolean fuzzy) {
+ if (TextUtils.isEmpty(keyword)) {
+ return new ArrayList<>();
+ }
+ ArrayList results = new ArrayList<>();
+
+ for (PreferenceItem item : allEntries) {
+ if ((fuzzy && item.matchesFuzzy(keyword))
+ || (!fuzzy && item.matches(keyword))) {
+ results.add(item);
+ }
+ }
+
+ results.sort((i1, i2) -> floatCompare(i2.getScore(keyword), i1.getScore(keyword)));
+
+ if (results.size() > MAX_RESULTS) {
+ return results.subList(0, MAX_RESULTS);
+ } else {
+ return results;
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/RevealAnimationSetting.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/RevealAnimationSetting.java
new file mode 100644
index 000000000..6a6119e15
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/RevealAnimationSetting.java
@@ -0,0 +1,73 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public class RevealAnimationSetting implements Parcelable {
+ public static final Creator CREATOR = new Creator<>() {
+ @Override
+ public RevealAnimationSetting createFromParcel(Parcel in) {
+ return new RevealAnimationSetting(in);
+ }
+
+ @Override
+ public RevealAnimationSetting[] newArray(int size) {
+ return new RevealAnimationSetting[size];
+ }
+ };
+ private final int centerX;
+ private final int centerY;
+ private final int width;
+ private final int height;
+ private final int colorAccent;
+
+ public RevealAnimationSetting(int centerX, int centerY, int width, int height, int colorAccent) {
+ this.centerX = centerX;
+ this.centerY = centerY;
+ this.width = width;
+ this.height = height;
+ this.colorAccent = colorAccent;
+ }
+
+ private RevealAnimationSetting(Parcel in) {
+ centerX = in.readInt();
+ centerY = in.readInt();
+ width = in.readInt();
+ height = in.readInt();
+ colorAccent = in.readInt();
+ }
+
+ public int getCenterX() {
+ return centerX;
+ }
+
+ public int getCenterY() {
+ return centerY;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public int getColorAccent() {
+ return colorAccent;
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeInt(centerX);
+ dest.writeInt(centerY);
+ dest.writeInt(width);
+ dest.writeInt(height);
+ dest.writeInt(colorAccent);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchConfiguration.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchConfiguration.java
new file mode 100644
index 000000000..04b15b5ba
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchConfiguration.java
@@ -0,0 +1,393 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import androidx.annotation.ColorInt;
+import androidx.annotation.IdRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.annotation.XmlRes;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class SearchConfiguration {
+ private static final String ARGUMENT_INDEX_FILES = "items";
+ private static final String ARGUMENT_INDEX_INDIVIDUAL_PREFERENCES = "individual_prefs";
+ private static final String ARGUMENT_FUZZY_ENABLED = "fuzzy";
+ private static final String ARGUMENT_HISTORY_ENABLED = "history_enabled";
+ private static final String ARGUMENT_SEARCH_BAR_ENABLED = "search_bar_enabled";
+ private static final String ARGUMENT_BREADCRUMBS_ENABLED = "breadcrumbs_enabled";
+ private static final String ARGUMENT_REVEAL_ANIMATION_SETTING = "reveal_anim_setting";
+ private static final String ARGUMENT_TEXT_HINT = "text_hint";
+ private static final String ARGUMENT_TEXT_CLEAR_HISTORY = "text_clear_history";
+ private static final String ARGUMENT_TEXT_NO_RESULTS = "text_no_results";
+ private final ArrayList bannedKeys = new ArrayList<>();
+ private ArrayList filesToIndex = new ArrayList<>();
+ private ArrayList preferencesToIndex = new ArrayList<>();
+ private boolean historyEnabled = true;
+ private boolean breadcrumbsEnabled = false;
+ private boolean fuzzySearchEnabled = true;
+ private boolean searchBarEnabled = true;
+ private AppCompatActivity activity;
+ private int containerResId = android.R.id.content;
+ private RevealAnimationSetting revealAnimationSetting = null;
+ private String textClearHistory;
+ private String textNoResults;
+ private String textHint;
+
+ SearchConfiguration() {
+
+ }
+
+ /**
+ * Creates a new search configuration
+ *
+ * @param activity The Activity that receives callbacks. Must implement SearchPreferenceResultListener.
+ */
+ @SuppressWarnings("unused")
+ public SearchConfiguration(AppCompatActivity activity) {
+ setActivity(activity);
+ }
+
+ static SearchConfiguration fromBundle(Bundle bundle) {
+ SearchConfiguration config = new SearchConfiguration();
+ config.filesToIndex = bundle.getParcelableArrayList(ARGUMENT_INDEX_FILES);
+ config.preferencesToIndex = bundle.getParcelableArrayList(ARGUMENT_INDEX_INDIVIDUAL_PREFERENCES);
+ config.historyEnabled = bundle.getBoolean(ARGUMENT_HISTORY_ENABLED);
+ config.revealAnimationSetting = bundle.getParcelable(ARGUMENT_REVEAL_ANIMATION_SETTING);
+ config.fuzzySearchEnabled = bundle.getBoolean(ARGUMENT_FUZZY_ENABLED);
+ config.breadcrumbsEnabled = bundle.getBoolean(ARGUMENT_BREADCRUMBS_ENABLED);
+ config.searchBarEnabled = bundle.getBoolean(ARGUMENT_SEARCH_BAR_ENABLED);
+ config.textHint = bundle.getString(ARGUMENT_TEXT_HINT);
+ config.textClearHistory = bundle.getString(ARGUMENT_TEXT_CLEAR_HISTORY);
+ config.textNoResults = bundle.getString(ARGUMENT_TEXT_NO_RESULTS);
+ return config;
+ }
+
+ /**
+ * Shows the fragment
+ *
+ * @return A reference to the fragment
+ */
+ public SearchPreferenceFragment showSearchFragment() {
+ if (activity == null) {
+ throw new IllegalStateException("setActivity() not called");
+ }
+
+ Bundle arguments = this.toBundle();
+ SearchPreferenceFragment fragment = new SearchPreferenceFragment();
+ fragment.setArguments(arguments);
+ activity.getSupportFragmentManager().beginTransaction()
+ .add(containerResId, fragment, SearchPreferenceFragment.TAG)
+ .addToBackStack(SearchPreferenceFragment.TAG)
+ .commit();
+ return fragment;
+ }
+
+ private Bundle toBundle() {
+ Bundle arguments = new Bundle();
+ arguments.putParcelableArrayList(ARGUMENT_INDEX_FILES, filesToIndex);
+ arguments.putParcelableArrayList(ARGUMENT_INDEX_INDIVIDUAL_PREFERENCES, preferencesToIndex);
+ arguments.putBoolean(ARGUMENT_HISTORY_ENABLED, historyEnabled);
+ arguments.putParcelable(ARGUMENT_REVEAL_ANIMATION_SETTING, revealAnimationSetting);
+ arguments.putBoolean(ARGUMENT_FUZZY_ENABLED, fuzzySearchEnabled);
+ arguments.putBoolean(ARGUMENT_BREADCRUMBS_ENABLED, breadcrumbsEnabled);
+ arguments.putBoolean(ARGUMENT_SEARCH_BAR_ENABLED, searchBarEnabled);
+ arguments.putString(ARGUMENT_TEXT_HINT, textHint);
+ arguments.putString(ARGUMENT_TEXT_CLEAR_HISTORY, textClearHistory);
+ arguments.putString(ARGUMENT_TEXT_NO_RESULTS, textNoResults);
+ return arguments;
+ }
+
+ /**
+ * Sets the current activity that also receives callbacks
+ *
+ * @param activity The Activity that receives callbacks. Must implement SearchPreferenceResultListener.
+ */
+ public void setActivity(@NonNull AppCompatActivity activity) {
+ this.activity = activity;
+ if (!(activity instanceof SearchPreferenceResultListener)) {
+ throw new IllegalArgumentException("Activity must implement SearchPreferenceResultListener");
+ }
+ }
+
+ /**
+ * Sets the container to use when loading the fragment
+ *
+ * @param containerResId Resource id of the container
+ */
+ public void setFragmentContainerViewId(@IdRes int containerResId) {
+ this.containerResId = containerResId;
+ }
+
+ /**
+ * Display a reveal animation
+ *
+ * @param centerX Origin of the reveal animation
+ * @param centerY Origin of the reveal animation
+ * @param width Size of the main container
+ * @param height Size of the main container
+ * @param colorAccent Accent color to use
+ */
+ @SuppressWarnings("unused")
+ public void useAnimation(int centerX, int centerY, int width, int height, @ColorInt int colorAccent) {
+ revealAnimationSetting = new RevealAnimationSetting(centerX, centerY, width, height, colorAccent);
+ }
+
+ /**
+ * Adds a new file to the index
+ *
+ * @param resId The preference file to index
+ */
+ public SearchIndexItem index(@XmlRes int resId) {
+ SearchIndexItem item = new SearchIndexItem(resId, this);
+ filesToIndex.add(item);
+ return item;
+ }
+
+ /**
+ * Indexes a single preference
+ *
+ * @return the indexed PreferenceItem to configure it with chaining
+ * @see PreferenceItem for the available methods for configuring it
+ */
+ @SuppressWarnings("unused")
+ public PreferenceItem indexItem() {
+ PreferenceItem preferenceItem = new PreferenceItem();
+ preferencesToIndex.add(preferenceItem);
+ return preferenceItem;
+ }
+
+ /**
+ * Indexes a single android preference
+ *
+ * @param preference to get its key, summary, title and entries
+ * @return the indexed PreferenceItem to configure it with chaining
+ * @see PreferenceItem for the available methods for configuring it
+ */
+ @SuppressWarnings("unused")
+ public PreferenceItem indexItem(@NonNull Preference preference) {
+ PreferenceItem preferenceItem = new PreferenceItem();
+
+ if (preference.getKey() != null) {
+ preferenceItem.key = preference.getKey();
+ }
+ if (preference.getSummary() != null) {
+ preferenceItem.summary = preference.getSummary().toString();
+ }
+ if (preference.getTitle() != null) {
+ preferenceItem.title = preference.getTitle().toString();
+ }
+ if (preference instanceof ListPreference) {
+ ListPreference listPreference = ((ListPreference) preference);
+ if (listPreference.getEntries() != null) {
+ preferenceItem.entries = Arrays.toString(listPreference.getEntries());
+ }
+ }
+ preferencesToIndex.add(preferenceItem);
+ return preferenceItem;
+ }
+
+ ArrayList getBannedKeys() {
+ return bannedKeys;
+ }
+
+ /**
+ * @param key of the preference to be ignored
+ */
+ @SuppressWarnings("unused")
+ public void ignorePreference(@NonNull String key) {
+ bannedKeys.add(key);
+ }
+
+ ArrayList getFiles() {
+ return filesToIndex;
+ }
+
+ ArrayList getPreferencesToIndex() {
+ return preferencesToIndex;
+ }
+
+ boolean isHistoryEnabled() {
+ return historyEnabled;
+ }
+
+ /**
+ * Show a history of recent search terms if nothing was typed yet. Default is true
+ *
+ * @param historyEnabled True if history should be enabled
+ */
+ public void setHistoryEnabled(boolean historyEnabled) {
+ this.historyEnabled = historyEnabled;
+ }
+
+ boolean isBreadcrumbsEnabled() {
+ return breadcrumbsEnabled;
+ }
+
+ /**
+ * Show breadcrumbs in the list of search results, containing of
+ * the prefix given in addResourceFileToIndex, PreferenceCategory and PreferenceScreen.
+ * Default is false
+ *
+ * @param breadcrumbsEnabled True if breadcrumbs should be shown
+ */
+ public void setBreadcrumbsEnabled(boolean breadcrumbsEnabled) {
+ this.breadcrumbsEnabled = breadcrumbsEnabled;
+ }
+
+ boolean isFuzzySearchEnabled() {
+ return fuzzySearchEnabled;
+ }
+
+ /**
+ * Allow to enable and disable fuzzy searching. Default is true
+ *
+ * @param fuzzySearchEnabled True if search should be fuzzy
+ */
+ public void setFuzzySearchEnabled(boolean fuzzySearchEnabled) {
+ this.fuzzySearchEnabled = fuzzySearchEnabled;
+ }
+
+ boolean isSearchBarEnabled() {
+ return searchBarEnabled;
+ }
+
+ /**
+ * Show the search bar above the list. When setting this to false, you have to use {@see SearchPreferenceFragment#setSearchTerm(String) setSearchTerm} instead
+ * Default is true
+ *
+ * @param searchBarEnabled True if search bar should be shown
+ */
+ public void setSearchBarEnabled(boolean searchBarEnabled) {
+ this.searchBarEnabled = searchBarEnabled;
+ }
+
+ RevealAnimationSetting getRevealAnimationSetting() {
+ return revealAnimationSetting;
+ }
+
+ @SuppressWarnings("unused")
+ public String getTextClearHistory() {
+ return textClearHistory;
+ }
+
+ public void setTextClearHistory(String textClearHistory) {
+ this.textClearHistory = textClearHistory;
+ }
+
+ public String getTextNoResults() {
+ return textNoResults;
+ }
+
+ public void setTextNoResults(String textNoResults) {
+ this.textNoResults = textNoResults;
+ }
+
+ public String getTextHint() {
+ return textHint;
+ }
+
+ public void setTextHint(String textHint) {
+ this.textHint = textHint;
+ }
+
+ /**
+ * Adds a given R.xml resource to the search index
+ */
+ public static class SearchIndexItem implements Parcelable {
+ public static final Creator CREATOR = new Creator() {
+ @Override
+ public SearchIndexItem createFromParcel(Parcel in) {
+ return new SearchIndexItem(in);
+ }
+
+ @Override
+ public SearchIndexItem[] newArray(int size) {
+ return new SearchIndexItem[size];
+ }
+ };
+ private final @XmlRes int resId;
+ private final SearchConfiguration searchConfiguration;
+ private String breadcrumb = "";
+
+ /**
+ * Includes the given R.xml resource in the index
+ *
+ * @param resId The resource to index
+ */
+ private SearchIndexItem(@XmlRes int resId, SearchConfiguration searchConfiguration) {
+ this.resId = resId;
+ this.searchConfiguration = searchConfiguration;
+ }
+
+ private SearchIndexItem(Parcel parcel) {
+ this.breadcrumb = parcel.readString();
+ this.resId = parcel.readInt();
+ this.searchConfiguration = null;
+ }
+
+ /**
+ * Adds a breadcrumb
+ *
+ * @param breadcrumb The breadcrumb to add
+ * @return For chaining
+ */
+ @SuppressWarnings("unused")
+ public SearchIndexItem addBreadcrumb(@StringRes int breadcrumb) {
+ assertNotParcel();
+ return addBreadcrumb(searchConfiguration.activity.getString(breadcrumb));
+ }
+
+ /**
+ * Adds a breadcrumb
+ *
+ * @param breadcrumb The breadcrumb to add
+ * @return For chaining
+ */
+ public SearchIndexItem addBreadcrumb(String breadcrumb) {
+ assertNotParcel();
+ this.breadcrumb = Breadcrumb.concat(this.breadcrumb, breadcrumb);
+ return this;
+ }
+
+ /**
+ * Throws an exception if the item does not have a searchConfiguration (thus, is restored from a parcel)
+ */
+ private void assertNotParcel() {
+ if (searchConfiguration == null) {
+ throw new IllegalStateException("SearchIndexItems that are restored from parcel can not be modified.");
+ }
+ }
+
+ @XmlRes
+ int getResId() {
+ return resId;
+ }
+
+ String getBreadcrumb() {
+ return breadcrumb;
+ }
+
+ SearchConfiguration getSearchConfiguration() {
+ return searchConfiguration;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeString(this.breadcrumb);
+ dest.writeInt(this.resId);
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreference.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreference.java
new file mode 100644
index 000000000..b1ba86e15
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreference.java
@@ -0,0 +1,91 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.text.InputType;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.widget.EditText;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.activity.MainActivity;
+
+public class SearchPreference extends Preference implements View.OnClickListener {
+ private final SearchConfiguration searchConfiguration = new SearchConfiguration();
+ private String hint = null;
+
+ @SuppressWarnings("unused")
+ public SearchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ setLayoutResource(R.layout.searchpreference_preference);
+ parseAttrs(attrs);
+ }
+
+ @SuppressWarnings("unused")
+ public SearchPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ setLayoutResource(R.layout.searchpreference_preference);
+ parseAttrs(attrs);
+ }
+
+ @SuppressWarnings("unused")
+ public SearchPreference(Context context) {
+ super(context);
+ setLayoutResource(R.layout.searchpreference_preference);
+ }
+
+ private void parseAttrs(AttributeSet attrs) {
+ TypedArray a = getContext().obtainStyledAttributes(attrs, new int[]{R.attr.textHint});
+ if (a.getText(0) != null) {
+ hint = a.getText(0).toString();
+ searchConfiguration.setTextHint(a.getText(0).toString());
+ }
+ a.recycle();
+ a = getContext().obtainStyledAttributes(attrs, new int[]{R.attr.textClearHistory});
+ if (a.getText(0) != null) {
+ searchConfiguration.setTextClearHistory(a.getText(0).toString());
+ }
+ a.recycle();
+ a = getContext().obtainStyledAttributes(attrs, new int[]{R.attr.textNoResults});
+ if (a.getText(0) != null) {
+ searchConfiguration.setTextNoResults(a.getText(0).toString());
+ }
+ a.recycle();
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ EditText searchText = (EditText) holder.findViewById(R.id.search);
+ searchText.setFocusable(false);
+ searchText.setInputType(InputType.TYPE_NULL);
+ searchText.setOnClickListener(this);
+
+ if (hint != null) {
+ searchText.setHint(hint);
+ }
+
+ holder.findViewById(R.id.search_card).setOnClickListener(this);
+ holder.itemView.setOnClickListener(this);
+ holder.itemView.setBackgroundColor(0x0);
+ }
+
+ @Override
+ public void onClick(View view) {
+ Log.d("SearchPreference", "onClick: ");
+ getSearchConfiguration().showSearchFragment();
+ MainActivity.backButtonEnabled();
+ }
+
+ /**
+ * Returns the search configuration object for this preference
+ *
+ * @return The search configuration
+ */
+ public SearchConfiguration getSearchConfiguration() {
+ return searchConfiguration;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceActionView.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceActionView.java
new file mode 100644
index 000000000..fabb91de9
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceActionView.java
@@ -0,0 +1,93 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.SearchView;
+import androidx.fragment.app.FragmentManager;
+
+public class SearchPreferenceActionView extends SearchView {
+ protected SearchPreferenceFragment searchFragment;
+ protected SearchConfiguration searchConfiguration = new SearchConfiguration();
+ protected AppCompatActivity activity;
+
+ public SearchPreferenceActionView(Context context) {
+ super(context);
+ initView();
+ }
+
+ public SearchPreferenceActionView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ initView();
+ }
+
+ public SearchPreferenceActionView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ initView();
+ }
+
+ private void initView() {
+ searchConfiguration.setSearchBarEnabled(false);
+ setOnQueryTextListener(new OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ return false;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String newText) {
+ if (searchFragment != null) {
+ searchFragment.setSearchTerm(newText);
+ }
+ return true;
+ }
+ });
+ setOnQueryTextFocusChangeListener((v, hasFocus) -> {
+ if (hasFocus && (searchFragment == null || !searchFragment.isVisible())) {
+ searchFragment = searchConfiguration.showSearchFragment();
+ searchFragment.setHistoryClickListener(entry -> setQuery(entry, false));
+ }
+ });
+ }
+
+ @SuppressWarnings("unused")
+ public SearchConfiguration getSearchConfiguration() {
+ return searchConfiguration;
+ }
+
+ /**
+ * Hides the search fragment
+ *
+ * @return true if it was hidden, so the calling activity should not go back itself.
+ */
+ @SuppressWarnings("unused")
+ public boolean cancelSearch() {
+ setQuery("", false);
+
+ boolean didSomething = false;
+ if (!isIconified()) {
+ setIconified(true);
+ didSomething = true;
+ }
+ if (searchFragment != null && searchFragment.isVisible()) {
+ removeFragment();
+ didSomething = true;
+ }
+ return didSomething;
+ }
+
+ protected void removeFragment() {
+ if (searchFragment.isVisible()) {
+ FragmentManager fm = activity.getSupportFragmentManager();
+ fm.beginTransaction().remove(searchFragment).commit();
+ fm.popBackStack(SearchPreferenceFragment.TAG, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+ }
+ }
+
+ @SuppressWarnings("unused")
+ public void setActivity(AppCompatActivity activity) {
+ searchConfiguration.setActivity(activity);
+ this.activity = activity;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceAdapter.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceAdapter.java
new file mode 100644
index 000000000..d9359e77b
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceAdapter.java
@@ -0,0 +1,139 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+
+import android.annotation.SuppressLint;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.R;
+
+class SearchPreferenceAdapter extends RecyclerView.Adapter {
+ private List dataset;
+ private SearchConfiguration searchConfiguration;
+ private SearchClickListener onItemClickListener;
+
+
+ SearchPreferenceAdapter() {
+ dataset = new ArrayList<>();
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ if (viewType == PreferenceItem.TYPE) {
+ return new PreferenceViewHolder(
+ LayoutInflater.from(parent.getContext()).inflate(
+ R.layout.searchpreference_list_item_result, parent, false));
+ } else {
+ return new HistoryViewHolder(
+ LayoutInflater.from(parent.getContext()).inflate(
+ R.layout.searchpreference_list_item_history, parent, false));
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull final ViewHolder h, final int position) {
+ final ListItem listItem = dataset.get(position);
+ if (getItemViewType(position) == HistoryItem.TYPE) {
+ HistoryViewHolder holder = (HistoryViewHolder) h;
+ HistoryItem item = (HistoryItem) listItem;
+ holder.term.setText(item.getTerm());
+ } else if (getItemViewType(position) == PreferenceItem.TYPE) {
+ PreferenceViewHolder holder = (PreferenceViewHolder) h;
+ PreferenceItem item = (PreferenceItem) listItem;
+ holder.title.setText(item.title);
+
+ if (TextUtils.isEmpty(item.summary) || item.summary.contains("%s")) {
+ holder.summary.setVisibility(View.GONE);
+ } else {
+ holder.summary.setVisibility(View.VISIBLE);
+ holder.summary.setText(item.summary);
+ holder.summary.setAlpha(0.8f);
+ }
+
+ if (searchConfiguration.isBreadcrumbsEnabled()) {
+ holder.breadcrumbs.setText(item.breadcrumbs);
+ holder.breadcrumbs.setAlpha(0.6f);
+ holder.summary.setAlpha(0.8f);
+ } else {
+ holder.breadcrumbs.setVisibility(View.GONE);
+ holder.summary.setAlpha(0.6f);
+ }
+
+ }
+
+ h.root.setOnClickListener(v -> {
+ if (onItemClickListener != null) {
+ onItemClickListener.onItemClicked(listItem, h.getBindingAdapterPosition());
+ }
+ });
+ }
+
+ @SuppressLint("NotifyDataSetChanged")
+ void setContent(List items) {
+ dataset = new ArrayList<>(items);
+ this.notifyDataSetChanged();
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataset.size();
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ return dataset.get(position).getType();
+ }
+
+ void setSearchConfiguration(SearchConfiguration searchConfiguration) {
+ this.searchConfiguration = searchConfiguration;
+ }
+
+ void setOnItemClickListener(SearchClickListener onItemClickListener) {
+ this.onItemClickListener = onItemClickListener;
+ }
+
+ interface SearchClickListener {
+ void onItemClicked(ListItem item, int position);
+ }
+
+ static class ViewHolder extends RecyclerView.ViewHolder {
+ View root;
+
+ ViewHolder(View v) {
+ super(v);
+ root = v;
+ }
+ }
+
+ static class HistoryViewHolder extends ViewHolder {
+ TextView term;
+
+ HistoryViewHolder(View v) {
+ super(v);
+ term = v.findViewById(R.id.term);
+ }
+ }
+
+ static class PreferenceViewHolder extends ViewHolder {
+ TextView title;
+ TextView summary;
+ TextView breadcrumbs;
+
+ PreferenceViewHolder(View v) {
+ super(v);
+ title = v.findViewById(R.id.title);
+ summary = v.findViewById(R.id.summary);
+ breadcrumbs = v.findViewById(R.id.breadcrumbs);
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceFragment.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceFragment.java
new file mode 100644
index 000000000..c3cb80bb1
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceFragment.java
@@ -0,0 +1,301 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.PopupMenu;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.activity.MainActivity;
+
+public class SearchPreferenceFragment extends Fragment implements SearchPreferenceAdapter.SearchClickListener {
+ /**
+ * Default tag used on the library's Fragment transactions with {@link SearchPreferenceFragment}
+ */
+ public static final String TAG = "SearchPreferenceFragment";
+
+ private static final String SHARED_PREFS_FILE = "preferenceSearch";
+ private static final int MAX_HISTORY = 5;
+ private PreferenceParser searcher;
+ private List results;
+ private List history;
+ private SharedPreferences prefs;
+ private SearchViewHolder viewHolder;
+ private SearchConfiguration searchConfiguration;
+ private SearchPreferenceAdapter adapter;
+ private final TextWatcher textWatcher = new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+ }
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+ }
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ updateSearchResults(editable.toString());
+ viewHolder.clearButton.setVisibility(editable.toString().isEmpty() ? View.GONE : View.VISIBLE);
+ }
+ };
+ private HistoryClickListener historyClickListener;
+ private CharSequence searchTermPreset = null;
+
+ private void initSearch() {
+ searcher = new PreferenceParser(requireContext());
+
+ assert getArguments() != null;
+ searchConfiguration = SearchConfiguration.fromBundle(getArguments());
+ ArrayList files = searchConfiguration.getFiles();
+ for (SearchConfiguration.SearchIndexItem file : files) {
+ searcher.addResourceFile(file);
+ }
+ searcher.addPreferenceItems(searchConfiguration.getPreferencesToIndex());
+ loadHistory();
+ }
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ prefs = requireContext().getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE);
+
+ initSearch();
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View rootView = inflater.inflate(R.layout.searchpreference_fragment, container, false);
+ viewHolder = new SearchViewHolder(rootView);
+
+ viewHolder.clearButton.setOnClickListener(view -> viewHolder.searchView.setText(""));
+ if (searchConfiguration.isHistoryEnabled()) {
+ viewHolder.moreButton.setVisibility(View.VISIBLE);
+ }
+ if (searchConfiguration.getTextHint() != null) {
+ viewHolder.searchView.setHint(searchConfiguration.getTextHint());
+ }
+ if (searchConfiguration.getTextNoResults() != null) {
+ viewHolder.noResults.setText(searchConfiguration.getTextNoResults());
+ }
+ viewHolder.moreButton.setOnClickListener(v -> {
+ PopupMenu popup = new PopupMenu(requireContext(), viewHolder.moreButton);
+ popup.getMenuInflater().inflate(R.menu.searchpreference_more, popup.getMenu());
+ popup.setOnMenuItemClickListener(item -> {
+ if (item.getItemId() == R.id.clear_history) {
+ clearHistory();
+ }
+ return true;
+ });
+ popup.show();
+ });
+
+ viewHolder.recyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
+ adapter = new SearchPreferenceAdapter();
+ adapter.setSearchConfiguration(searchConfiguration);
+ adapter.setOnItemClickListener(this);
+ viewHolder.recyclerView.setAdapter(adapter);
+
+ viewHolder.searchView.addTextChangedListener(textWatcher);
+
+ if (!searchConfiguration.isSearchBarEnabled()) {
+ viewHolder.searchContainer.setVisibility(View.GONE);
+ }
+
+ if (searchTermPreset != null) {
+ viewHolder.searchView.setText(searchTermPreset);
+ }
+
+ RevealAnimationSetting anim = searchConfiguration.getRevealAnimationSetting();
+ if (anim != null) {
+ AnimationUtils.registerCircularRevealAnimation(requireContext(), rootView, anim);
+ }
+
+ return rootView;
+ }
+
+ private void loadHistory() {
+ history = new ArrayList<>();
+ if (!searchConfiguration.isHistoryEnabled()) {
+ return;
+ }
+
+ int size = prefs.getInt("history_size", 0);
+ for (int i = 0; i < size; i++) {
+ String title = prefs.getString("history_" + i, null);
+ history.add(new HistoryItem(title));
+ }
+ }
+
+ private void saveHistory() {
+ SharedPreferences.Editor editor = prefs.edit();
+ editor.putInt("history_size", history.size());
+ for (int i = 0; i < history.size(); i++) {
+ editor.putString("history_" + i, history.get(i).getTerm());
+ }
+ editor.apply();
+ }
+
+ private void clearHistory() {
+ viewHolder.searchView.setText("");
+ history.clear();
+ saveHistory();
+ updateSearchResults("");
+ }
+
+ private void addHistoryEntry(String entry) {
+ HistoryItem newItem = new HistoryItem(entry);
+ if (!history.contains(newItem)) {
+ if (history.size() >= MAX_HISTORY) {
+ history.remove(history.size() - 1);
+ }
+ history.add(0, newItem);
+ saveHistory();
+ updateSearchResults(viewHolder.searchView.getText().toString());
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ initSearch();
+
+ updateSearchResults(viewHolder.searchView.getText().toString());
+
+ if (searchConfiguration.isSearchBarEnabled()) {
+ showKeyboard();
+ }
+
+ MainActivity.backButtonEnabled();
+ }
+
+ private void showKeyboard() {
+ viewHolder.searchView.post(() -> {
+ viewHolder.searchView.requestFocus();
+ InputMethodManager imm = (InputMethodManager) requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ if (imm != null) {
+ imm.showSoftInput(viewHolder.searchView, InputMethodManager.SHOW_IMPLICIT);
+ }
+ });
+ }
+
+ private void hideKeyboard() {
+ View view = requireActivity().getCurrentFocus();
+ InputMethodManager imm = (InputMethodManager) requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ if (view != null && imm != null) {
+ imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
+ }
+ }
+
+ public void setSearchTerm(CharSequence term) {
+ if (viewHolder != null) {
+ viewHolder.searchView.setText(term);
+ } else {
+ searchTermPreset = term;
+ }
+ }
+
+ private void updateSearchResults(String keyword) {
+ if (TextUtils.isEmpty(keyword)) {
+ showHistory();
+ return;
+ }
+
+ results = searcher.searchFor(keyword, searchConfiguration.isFuzzySearchEnabled());
+ adapter.setContent(new ArrayList<>(results));
+
+ setEmptyViewShown(results.isEmpty());
+ }
+
+ private void setEmptyViewShown(boolean shown) {
+ if (shown) {
+ viewHolder.noResults.setVisibility(View.VISIBLE);
+ viewHolder.recyclerView.setVisibility(View.GONE);
+ } else {
+ viewHolder.noResults.setVisibility(View.GONE);
+ viewHolder.recyclerView.setVisibility(View.VISIBLE);
+ }
+ }
+
+ private void showHistory() {
+ viewHolder.noResults.setVisibility(View.GONE);
+ viewHolder.recyclerView.setVisibility(View.VISIBLE);
+
+ adapter.setContent(new ArrayList<>(history));
+ setEmptyViewShown(history.isEmpty());
+ }
+
+ @Override
+ public void onItemClicked(ListItem item, int position) {
+ if (item.getType() == HistoryItem.TYPE) {
+ CharSequence text = ((HistoryItem) item).getTerm();
+ viewHolder.searchView.setText(text);
+ viewHolder.searchView.setSelection(text.length());
+ if (historyClickListener != null) {
+ historyClickListener.onHistoryEntryClicked(text.toString());
+ }
+ } else {
+ hideKeyboard();
+
+ try {
+ final SearchPreferenceResultListener callback = (SearchPreferenceResultListener) getActivity();
+ PreferenceItem r = results.get(position);
+ addHistoryEntry(r.title);
+ String screen = null;
+ if (!r.keyBreadcrumbs.isEmpty()) {
+ screen = r.keyBreadcrumbs.get(r.keyBreadcrumbs.size() - 1);
+ }
+ SearchPreferenceResult result = new SearchPreferenceResult(r.key, r.resId, screen);
+ assert callback != null;
+ callback.onSearchResultClicked(result);
+ } catch (ClassCastException e) {
+ throw new ClassCastException(requireActivity() + " must implement SearchPreferenceResultListener");
+ }
+ }
+ }
+
+ public void setHistoryClickListener(HistoryClickListener historyClickListener) {
+ this.historyClickListener = historyClickListener;
+ }
+
+ public interface HistoryClickListener {
+ void onHistoryEntryClicked(String entry);
+ }
+
+ private static class SearchViewHolder {
+ private final ImageView clearButton;
+ private final ImageView moreButton;
+ private final EditText searchView;
+ private final RecyclerView recyclerView;
+ private final TextView noResults;
+ private final LinearLayout searchContainer;
+
+ SearchViewHolder(View root) {
+ searchView = root.findViewById(R.id.search);
+ clearButton = root.findViewById(R.id.clear);
+ recyclerView = root.findViewById(R.id.list);
+ moreButton = root.findViewById(R.id.more);
+ noResults = root.findViewById(R.id.no_results);
+ searchContainer = root.findViewById(R.id.search_card);
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceResult.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceResult.java
new file mode 100644
index 000000000..7e58ee56a
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceResult.java
@@ -0,0 +1,153 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.RippleDrawable;
+import android.os.Handler;
+import android.os.Looper;
+import android.util.Log;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentManager;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceGroup;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.Objects;
+
+
+public class SearchPreferenceResult {
+ private final String key;
+ private final int file;
+ private final String screen;
+
+ SearchPreferenceResult(String key, int file, String screen) {
+ this.key = key;
+ this.file = file;
+ this.screen = screen;
+ }
+
+ public static void highlight(final PreferenceFragmentCompat prefsFragment, final String key) {
+ new Handler(Looper.getMainLooper()).post(() -> doHighlight(prefsFragment, key));
+ }
+
+ private static void doHighlight(final PreferenceFragmentCompat prefsFragment, final String key) {
+ final Preference prefResult = prefsFragment.findPreference(key);
+
+ if (prefResult == null) {
+ Log.e("doHighlight", "Preference not found on given screen");
+ return;
+ }
+
+ final RecyclerView recyclerView = prefsFragment.getListView();
+ final RecyclerView.Adapter> adapter = recyclerView.getAdapter();
+
+ if (adapter instanceof PreferenceGroup.PreferencePositionCallback callback) {
+ final int position = callback.getPreferenceAdapterPosition(prefResult);
+
+ if (position != RecyclerView.NO_POSITION) {
+ recyclerView.scrollToPosition(position);
+ recyclerView.postDelayed(() -> {
+ RecyclerView.ViewHolder holder = recyclerView.findViewHolderForAdapterPosition(position);
+ if (holder != null) {
+ Drawable background = holder.itemView.getBackground();
+ if (background instanceof RippleDrawable) {
+ forceRippleAnimation((RippleDrawable) background);
+ return;
+ }
+ }
+ highlightFallback(prefsFragment, prefResult);
+ }, 200);
+ return;
+ }
+ }
+
+ highlightFallback(prefsFragment, prefResult);
+ }
+
+ /**
+ * Alternative (old) highlight method if ripple does not work
+ */
+ private static void highlightFallback(PreferenceFragmentCompat prefsFragment, final Preference prefResult) {
+ prefsFragment.scrollToPreference(prefResult);
+ new Handler(Looper.getMainLooper()).postDelayed(() -> {
+ try {
+ final RecyclerView recyclerView = prefsFragment.getListView();
+ final RecyclerView.Adapter> adapter = recyclerView.getAdapter();
+
+ if (adapter instanceof PreferenceGroup.PreferencePositionCallback callback) {
+ final int position = callback.getPreferenceAdapterPosition(prefResult);
+
+ if (position != RecyclerView.NO_POSITION) {
+ recyclerView.scrollToPosition(position);
+ recyclerView.postDelayed(() -> {
+ RecyclerView.ViewHolder holder = recyclerView.findViewHolderForAdapterPosition(position);
+ if (holder != null) {
+ Drawable background = holder.itemView.getBackground();
+ if (background instanceof RippleDrawable) {
+ forceRippleAnimation((RippleDrawable) background);
+ }
+ }
+ }, 200);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }, 400);
+ }
+
+ protected static void forceRippleAnimation(RippleDrawable background) {
+ final RippleDrawable rippleDrawable = background;
+ rippleDrawable.setState(new int[]{android.R.attr.state_pressed, android.R.attr.state_enabled});
+ new Handler(Looper.getMainLooper()).postDelayed(() -> rippleDrawable.setState(new int[]{}), 300);
+ }
+
+ /**
+ * Returns the key of the preference pressed
+ *
+ * @return The key
+ */
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * Returns the file in which the result was found
+ *
+ * @return The file in which the result was found
+ */
+ public int getResourceFile() {
+ return file;
+ }
+
+ /**
+ * Returns the screen in which the result was found
+ *
+ * @return The screen in which the result was found
+ */
+ public String getScreen() {
+ return screen;
+ }
+
+ /**
+ * Highlight the preference that was found
+ *
+ * @param prefsFragment Fragment that contains the preference
+ */
+ @SuppressWarnings("unused")
+ public void highlight(final PreferenceFragmentCompat prefsFragment) {
+ new Handler(Looper.getMainLooper()).post(() -> doHighlight(prefsFragment, getKey()));
+ }
+
+ /**
+ * Closes the search results page
+ *
+ * @param activity The current activity
+ */
+ @SuppressWarnings("unused")
+ public void closeSearchPage(AppCompatActivity activity) {
+ FragmentManager fm = activity.getSupportFragmentManager();
+ fm.beginTransaction().remove(Objects.requireNonNull(fm.findFragmentByTag(SearchPreferenceFragment.TAG))).commit();
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceResultListener.java b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceResultListener.java
new file mode 100644
index 000000000..14c9758d9
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/customprefs/preferencesearch/SearchPreferenceResultListener.java
@@ -0,0 +1,7 @@
+package it.dhd.oxygencustomizer.customprefs.preferencesearch;
+
+import androidx.annotation.NonNull;
+
+public interface SearchPreferenceResultListener {
+ void onSearchResultClicked(@NonNull SearchPreferenceResult result);
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/services/RootProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/services/RootProvider.java
new file mode 100644
index 000000000..08b8f7fbe
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/services/RootProvider.java
@@ -0,0 +1,124 @@
+package it.dhd.oxygencustomizer.services;
+
+
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.IBinder;
+import android.os.RemoteException;
+
+import androidx.annotation.NonNull;
+
+import com.topjohnwu.superuser.Shell;
+import com.topjohnwu.superuser.ipc.RootService;
+import com.topjohnwu.superuser.nio.FileSystemManager;
+
+import java.util.List;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.IRootProviderService;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class RootProvider extends RootService {
+ /**
+ * @noinspection unused
+ */
+ String TAG = getClass().getSimpleName();
+
+ static final String LSPD_DB_PATH = "/data/adb/lspd/config/modules_config.db";
+ static final String SQLITE_BIN = "/data/adb/modules/PixelXpert/sqlite3";
+
+ @Override
+ public IBinder onBind(@NonNull Intent intent) {
+ return new RootServicesIPC();
+ }
+
+ /**
+ * @noinspection RedundantThrows
+ */
+ class RootServicesIPC extends IRootProviderService.Stub {
+ int mLSPosedMID = -1;
+ private boolean mLSPosedEnabled = false;
+
+
+ @Override
+ public boolean checkLSPosedDB(String packageName) {
+ if (Constants.Packages.FRAMEWORK.equals(packageName))
+ packageName = "system";
+
+ try {
+ if (mLSPosedMID < 0 || !mLSPosedEnabled)
+ getModuleMID();
+
+ if (!mLSPosedEnabled)
+ return false;
+
+
+ return "1".equals(
+ runLSposedSQLiteQuery(
+ String.format("select count(*) from scope where mid = %s and user_id = 0 and app_pkg_name = '%s'", mLSPosedMID, packageName)
+ ).get(0));
+ } catch (Throwable ignored) {
+ return false;
+ }
+ }
+
+ @Override
+ public boolean isPackageInstalled(String packageName) throws RemoteException {
+ PackageManager pm = getPackageManager();
+ try {
+ pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
+ return pm.getApplicationInfo(packageName, 0).enabled;
+ } catch (PackageManager.NameNotFoundException ignored) {
+ return false;
+ }
+ }
+
+ @Override
+ public boolean activateInLSPosed(String packageName) throws RemoteException {
+ if (Constants.Packages.FRAMEWORK.equals(packageName)) //new LSPosed versions renamed framework
+ packageName = "system";
+
+ if (checkLSPosedDB(packageName))
+ return true;
+
+ getModuleMID();
+
+ if (!mLSPosedEnabled) {
+ enableModuleLSPosed();
+
+ if (checkLSPosedDB(packageName))
+ return true;
+ }
+
+ runLSposedSQLiteQuery(
+ String.format("insert into scope (mid, app_pkg_name, user_id) values (%s, '%s', 0)", mLSPosedMID, packageName));
+
+ return checkLSPosedDB(packageName);
+ }
+
+ private void enableModuleLSPosed() {
+ runLSposedSQLiteQuery(String.format("update modules set enabled = 1 where mid = %s", mLSPosedMID));
+ }
+
+ private void getModuleMID() {
+ mLSPosedMID = Integer.parseInt(
+ runLSposedSQLiteQuery(
+ String.format("select mid from modules where module_pkg_name = '%s'", BuildConfig.APPLICATION_ID)
+ ).get(0));
+
+ mLSPosedEnabled = "1".equals(
+ runLSposedSQLiteQuery(
+ String.format("select enabled from modules where mid = %s", mLSPosedMID)
+ ).get(0));
+ }
+
+ private List runLSposedSQLiteQuery(String command) {
+ return Shell.cmd(String.format("%s %s \"%s\"", SQLITE_BIN, LSPD_DB_PATH, command)).exec().getOut();
+ }
+
+ @Override
+ public IBinder getFileSystemService() {
+ return FileSystemManager.getService();
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/AuthActivity.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/AuthActivity.java
new file mode 100644
index 000000000..ba95feec1
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/AuthActivity.java
@@ -0,0 +1,97 @@
+package it.dhd.oxygencustomizer.ui.activity;
+
+
+import static androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_STRONG;
+import static androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_WEAK;
+import static androidx.biometric.BiometricManager.Authenticators.DEVICE_CREDENTIAL;
+import static androidx.biometric.BiometricPrompt.ERROR_CANCELED;
+import static it.dhd.oxygencustomizer.utils.Constants.Packages.SYSTEM_UI;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.util.Log;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.biometric.BiometricPrompt;
+import androidx.core.content.ContextCompat;
+
+import java.util.concurrent.Executor;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class AuthActivity extends AppCompatActivity {
+
+ private Executor executor;
+ private BiometricPrompt biometricPrompt;
+ private BiometricPrompt.PromptInfo promptInfo;
+ private int shown = 0;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ executor = ContextCompat.getMainExecutor(this);
+ biometricPrompt = new BiometricPrompt(AuthActivity.this,
+ executor, new BiometricPrompt.AuthenticationCallback() {
+ @Override
+ public void onAuthenticationError(int errorCode,
+ @NonNull CharSequence errString) {
+ Log.d("BiometricPrompt", "onAuthenticationError: " + errString + " (" + errorCode + ")");
+ if (errorCode == ERROR_CANCELED || errorCode == BiometricPrompt.ERROR_USER_CANCELED && shown < 2) {
+ biometricPrompt.cancelAuthentication();
+ runOnUiThread(() -> {
+ try {
+ biometricPrompt.authenticate(promptInfo);
+ shown++;
+ } catch (Throwable ignored) {
+ }
+ });
+ } else {
+ super.onAuthenticationError(errorCode, errString);
+ }
+ finishAndRemoveTask();
+ }
+
+ @Override
+ public void onAuthenticationSucceeded(
+ @NonNull BiometricPrompt.AuthenticationResult result) {
+ super.onAuthenticationSucceeded(result);
+ Intent broadcast = new Intent(Constants.ACTION_AUTH_SUCCESS_SHOW_ADVANCED_REBOOT);
+
+ broadcast.putExtra("packageName", SYSTEM_UI);
+
+ broadcast.setPackage(SYSTEM_UI);
+
+ AuthActivity.this.sendBroadcast(broadcast);
+ finishAndRemoveTask();
+ }
+
+ @Override
+ public void onAuthenticationFailed() {
+ super.onAuthenticationFailed();
+ Toast.makeText(getApplicationContext(), "Authentication failed",
+ Toast.LENGTH_SHORT)
+ .show();
+ finishAndRemoveTask();
+ }
+ });
+
+ promptInfo = new BiometricPrompt.PromptInfo.Builder()
+ .setTitle(getString(R.string.advanced_reboot_auth))
+ .setSubtitle(getString(R.string.advanced_reboot_auth_summary))
+ .setAllowedAuthenticators(BIOMETRIC_STRONG | BIOMETRIC_WEAK | DEVICE_CREDENTIAL)
+ .setConfirmationRequired(true)
+ .build();
+
+ new Handler(Looper.getMainLooper()).postDelayed(() -> biometricPrompt.authenticate(promptInfo), 300);
+ shown++;
+ }
+
+
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/LocationBrowseActivity.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/LocationBrowseActivity.java
new file mode 100644
index 000000000..c5951ee98
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/LocationBrowseActivity.java
@@ -0,0 +1,288 @@
+package it.dhd.oxygencustomizer.ui.activity;
+
+/*
+ * Copyright (C) 2017-2020 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.text.Editable;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import com.google.android.material.appbar.MaterialToolbar;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.view.WindowCompat;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.drawables.TintedDrawableSpan;
+import it.dhd.oxygencustomizer.utils.NetworkUtils;
+
+public class LocationBrowseActivity extends AppCompatActivity {
+ private static final String TAG = "LocationBrowseActivity";
+
+ public static final String DATA_LOCATION_NAME = "location_name";
+ public static final String DATA_LOCATION_LAT = "location_lat";
+ public static final String DATA_LOCATION_LON = "location_lon";
+
+ private List mLocationBrowseList = new ArrayList<>();
+ private LocagtionListAdapter mAdapter;
+ private ExecutorService mExecutorService = Executors.newSingleThreadExecutor();
+ private Handler mHandler = new Handler();
+ private String mQueryString;
+
+ private Runnable mQueryRunnable = new Runnable() {
+ @Override
+ public void run() {
+ mExecutorService.submit(() -> getLocations(mQueryString));
+ }
+ };
+
+ private static final String URL_PLACES =
+ "https://secure.geonames.org/searchJSON?name_startsWith=%s&lang=%s&username=omnijaws&maxRows=20";
+
+
+ private static class LocationBrowseItem {
+ private String mCityExt;
+ private String mCountryId;
+ private String mCity;
+ private double mLat;
+ private double mLon;
+
+ public LocationBrowseItem(String cityExt, String countryId, String city, double lat, double lon) {
+ mCityExt = cityExt;
+ mCountryId = countryId;
+ mCity = city;
+ mLat = lat;
+ mLon = lon;
+ }
+
+ public String getCity() {
+ return mCity;
+ }
+
+ public String getCityExt() {
+ return mCityExt;
+ }
+
+ protected String getId() {
+ return mCity + "," + mCountryId;
+ }
+
+ public double getLat() {
+ return mLat;
+ }
+
+ public double getLon() {
+ return mLon;
+ }
+
+ @Override
+ public boolean equals(@Nullable Object obj) {
+ return obj instanceof LocationBrowseItem && getId().equals(((LocationBrowseItem) obj).getId());
+ }
+ }
+
+ public class LocagtionListAdapter extends RecyclerView.Adapter {
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ final LayoutInflater inflater = LayoutInflater.from(parent.getContext());
+ return new ViewHolder(inflater.inflate(R.layout.location_browse_item, parent, false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ LocationBrowseItem city = mLocationBrowseList.get(position);
+
+ ((TextView) holder.itemView.findViewById(R.id.location_city)).setText(city.getCity());
+ ((TextView) holder.itemView.findViewById(R.id.location_city_ext)).setText(city.getCityExt());
+
+ holder.itemView.setOnClickListener(view -> {
+ Intent intent = new Intent();
+ intent.putExtra(DATA_LOCATION_NAME, city.getCity());
+ intent.putExtra(DATA_LOCATION_LAT, city.getLat());
+ intent.putExtra(DATA_LOCATION_LON, city.getLon());
+ setResult(Activity.RESULT_OK, intent);
+ finish();
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return mLocationBrowseList.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+
+ public ViewHolder(@NonNull View view) {
+ super(view);
+ }
+ }
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ //WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
+
+ setContentView(R.layout.location_browse_activity);
+
+ MaterialToolbar toolbar = findViewById(R.id.toolbar);
+ toolbar.setTitle(R.string.custom_location_title);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ EditText queryPattern = findViewById(R.id.query_pattern_text);
+ queryPattern.setHint(prefixTextWithIcon(this, R.drawable.ic_search, queryPattern.getHint()));
+ queryPattern.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ mHandler.removeCallbacks(mQueryRunnable);
+ mQueryString = s.toString();
+ if (TextUtils.isEmpty(mQueryString)) {
+ hideProgress();
+ mLocationBrowseList.clear();
+ mAdapter.notifyDataSetChanged();
+ } else {
+ showProgress();
+ mHandler.postDelayed(mQueryRunnable, 750);
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ }
+ });
+
+ mAdapter = new LocagtionListAdapter();
+ RecyclerView queryList = findViewById(R.id.query_result);
+ queryList.setAdapter(mAdapter);
+ queryList.setLayoutManager(new LinearLayoutManager(this));
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ finish();
+ return true;
+ default:
+ break;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ protected void getLocations(String input) {
+ mLocationBrowseList.clear();
+
+ try {
+ String lang = Locale.getDefault().getLanguage().replaceFirst("_", "-");
+ String url = String.format(URL_PLACES, Uri.encode(input.trim()), lang);
+ String response = NetworkUtils.downloadUrlMemoryAsString(url);
+ if (response != null) {
+ JSONArray jsonResults = new JSONObject(response).getJSONArray("geonames");
+ int count = jsonResults.length();
+ Log.d(TAG, "URL = " + url + " returning a response of count = " + count);
+
+ for (int i = 0; i < count; i++) {
+ JSONObject result = jsonResults.getJSONObject(i);
+
+ int population = result.has("population") ? result.getInt("population") : 0;
+ if (population == 0) {
+ continue;
+ }
+
+ String city = result.getString("name");
+ String country = result.getString("countryName");
+ String countryId = result.getString("countryId");
+ String adminName = result.has("adminName1") ? result.getString("adminName1") : "";
+ String cityExt = (TextUtils.isEmpty(adminName) ? "" : adminName + ", ") + country;
+ double lat = result.getDouble("lat");
+ double lon = result.getDouble("lng");
+
+ LocationBrowseItem locationItem = new LocationBrowseItem(cityExt, countryId, city, lat, lon);
+ if (!mLocationBrowseList.contains(locationItem)) {
+ mLocationBrowseList.add(locationItem);
+ if (mLocationBrowseList.size() == 5) {
+ break;
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ Log.e(TAG, "Received malformed location data input=" + input, e);
+ } finally {
+ mHandler.post(() -> {
+ hideProgress();
+ mAdapter.notifyDataSetChanged();
+ });
+ }
+ }
+
+ private void showProgress() {
+ findViewById(R.id.query_progressbar).setVisibility(View.VISIBLE);
+ }
+
+ private void hideProgress() {
+ findViewById(R.id.query_progressbar).setVisibility(View.GONE);
+ }
+
+ public static CharSequence prefixTextWithIcon(Context context, int iconRes, CharSequence msg) {
+ // Update the hint to contain the icon.
+ // Prefix the original hint with two spaces. The first space gets replaced by the icon
+ // using span. The second space is used for a singe space character between the hint
+ // and the icon.
+ SpannableString spanned = new SpannableString(" " + msg);
+ spanned.setSpan(new TintedDrawableSpan(context, iconRes),
+ 0, 1, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
+ return spanned;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/MainActivity.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/MainActivity.java
new file mode 100644
index 000000000..48986a4bb
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/activity/MainActivity.java
@@ -0,0 +1,331 @@
+package it.dhd.oxygencustomizer.ui.activity;
+
+import static androidx.preference.PreferenceManager.getDefaultSharedPreferences;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+import android.util.Log;
+import android.view.MenuItem;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.navigation.NavController;
+import androidx.navigation.fragment.NavHostFragment;
+import androidx.navigation.ui.AppBarConfiguration;
+import androidx.navigation.ui.NavigationUI;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.jaredrummler.android.colorpicker.ColorPickerDialog;
+import com.jaredrummler.android.colorpicker.ColorPickerDialogListener;
+
+import org.greenrobot.eventbus.EventBus;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.preferencesearch.SearchPreferenceResult;
+import it.dhd.oxygencustomizer.customprefs.preferencesearch.SearchPreferenceResultListener;
+import it.dhd.oxygencustomizer.databinding.ActivityMainBinding;
+import it.dhd.oxygencustomizer.ui.events.ColorDismissedEvent;
+import it.dhd.oxygencustomizer.ui.events.ColorSelectedEvent;
+import it.dhd.oxygencustomizer.ui.fragments.Hooks;
+import it.dhd.oxygencustomizer.ui.fragments.Mods;
+import it.dhd.oxygencustomizer.ui.fragments.Settings;
+import it.dhd.oxygencustomizer.ui.fragments.mods.Buttons;
+import it.dhd.oxygencustomizer.ui.fragments.mods.Launcher;
+import it.dhd.oxygencustomizer.ui.fragments.mods.lockscreen.Lockscreen;
+import it.dhd.oxygencustomizer.ui.fragments.mods.Statusbar;
+import it.dhd.oxygencustomizer.ui.fragments.mods.navbar.Gesture;
+import it.dhd.oxygencustomizer.ui.fragments.mods.qsheader.QsHeaderClock;
+import it.dhd.oxygencustomizer.ui.fragments.mods.qsheader.QsHeaderImage;
+import it.dhd.oxygencustomizer.ui.fragments.mods.quicksettings.QuickSettings;
+import it.dhd.oxygencustomizer.ui.fragments.mods.quicksettings.QuickSettingsCustomization;
+import it.dhd.oxygencustomizer.ui.fragments.mods.quicksettings.QuickSettingsTiles;
+import it.dhd.oxygencustomizer.utils.AppUtils;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+import it.dhd.oxygencustomizer.xposed.utils.ExtendedSharedPreferences;
+
+public class MainActivity extends AppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, ColorPickerDialogListener, SearchPreferenceResultListener {
+
+ private Integer selectedFragment = null;
+ private NavHostFragment navHostFragment;
+ private ActivityMainBinding binding;
+ private BottomNavigationView navigationView;
+ private static FragmentManager fragmentManager;
+ private static final String TITLE_TAG = "mainActivityTitle";
+ private static ActionBar actionBar;
+ private ColorPickerDialog.Builder colorPickerDialog;
+ public static final List prefsList = new ArrayList<>();
+ private Mods modsFragment;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ fragmentManager = getSupportFragmentManager();
+
+ binding = ActivityMainBinding.inflate(getLayoutInflater());
+ setContentView(binding.getRoot());
+
+
+ if (savedInstanceState == null) {
+ replaceFragment(new Mods());
+ } else {
+ setHeader(this, savedInstanceState.getCharSequence(TITLE_TAG));
+ }
+
+ prefsList.add(new Object[]{R.xml.mods, R.string.mods_title, new Mods()});
+ prefsList.add(new Object[]{R.xml.statusbar, R.string.statusbar_title, new Statusbar()});
+ prefsList.add(new Object[]{R.xml.statusbar_clock, R.string.status_bar_clock_title, new Statusbar.Clock()});
+ prefsList.add(new Object[]{R.xml.statusbar_notifications, R.string.statusbar_notifications, new Statusbar.Notifications()});
+ prefsList.add(new Object[]{R.xml.battery_bar_settings, R.string.statusbar_batterybar_title, new Statusbar.BatteryBar()});
+ prefsList.add(new Object[]{R.xml.statusbar_battery_icon, R.string.statusbar_battery_icon_options, new Statusbar.BatteryIcon()});
+ prefsList.add(new Object[]{R.xml.quick_settings_mods, R.string.quick_settings_title, new QuickSettings()});
+ prefsList.add(new Object[]{R.xml.quick_settings_tiles_prefs, R.string.quick_settings_tiles_title, new QuickSettingsTiles()});
+ prefsList.add(new Object[]{R.xml.quick_settings_tiles_customizations_prefs, R.string.quick_settings_tiles_customization_title, new QuickSettingsCustomization()});
+ prefsList.add(new Object[]{R.xml.qs_header_image_prefs, R.string.qs_header_image_title, new QsHeaderImage()});
+ prefsList.add(new Object[]{R.xml.qs_header_clock_prefs, R.string.qs_header_clock, new QsHeaderClock()});
+ prefsList.add(new Object[]{R.xml.gesture_prefs, R.string.gesture_navigation_title, new Gesture()});
+ prefsList.add(new Object[]{R.xml.buttons_prefs, R.string.buttons_title, new Buttons()});
+ if (AppUtils.isAppInstalled(this, Constants.Packages.LAUNCHER))
+ prefsList.add(new Object[]{R.xml.launcher_mods, R.string.launcher_title, new Launcher()});
+ prefsList.add(new Object[]{R.xml.lockscreen_prefs, R.string.lockscreen_title, new Lockscreen()});
+ prefsList.add(new Object[]{R.xml.lockscreen_clock, R.string.lockscreen_clock, new Lockscreen.LockscreenClock()});
+ prefsList.add(new Object[]{R.xml.sound_mods, R.string.sound, new Mods.Sound()});
+ prefsList.add(new Object[]{R.xml.package_manager_prefs, R.string.package_manager, new Mods.PackageManager()});
+ prefsList.add(new Object[]{R.xml.misc_prefs, R.string.misc, new Mods.Misc()});
+
+ PreferenceHelper.init(ExtendedSharedPreferences.from(getDefaultSharedPreferences(createDeviceProtectedStorageContext())));
+
+ // Setup navigation
+ setSupportActionBar(binding.toolbar);
+ actionBar = getSupportActionBar();
+ setupNavigation();
+ setupBottomNavigationView();
+
+ colorPickerDialog = ColorPickerDialog.newBuilder();
+ }
+
+ private void setupNavigation() {
+ //navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.fragmentContainerView);
+ if (navHostFragment == null) return;
+
+ NavController navController = navHostFragment.getNavController();
+ AppBarConfiguration appBarConfiguration =
+ new AppBarConfiguration.Builder(
+ R.id.mods,
+ R.id.hooks,
+ R.id.settings
+ ).build();
+
+ NavigationUI.setupWithNavController(
+ binding.toolbar, navController, appBarConfiguration);
+ navigationView = binding.bottomNavigationView;
+ binding.bottomNavigationView.setOnItemSelectedListener(item -> NavigationUI.onNavDestinationSelected(item, navController));
+
+ }
+
+ @SuppressLint("NonConstantResourceId")
+ private void setupBottomNavigationView() {
+ getSupportFragmentManager().addOnBackStackChangedListener(() -> {
+ String tag = getTopFragment();
+
+ if (Objects.equals(tag, Mods.class.getSimpleName())) {
+ selectedFragment = R.id.mods;
+ binding.bottomNavigationView.getMenu().getItem(0).setChecked(true);
+ setHeader(this, getString(R.string.app_name));
+ backButtonDisabled();
+ } else if (Objects.equals(tag, Hooks.class.getSimpleName())) {
+ selectedFragment = R.id.hooks;
+ binding.bottomNavigationView.getMenu().getItem(1).setChecked(true);
+ setHeader(this, getString(R.string.hooked_packages_title));
+ backButtonDisabled();
+ } else if (Objects.equals(tag, Settings.class.getSimpleName())) {
+ selectedFragment = R.id.settings;
+ binding.bottomNavigationView.getMenu().getItem(2).setChecked(true);
+ setHeader(this, getString(R.string.navbar_settings));
+ backButtonDisabled();
+ }
+ });
+
+ binding.bottomNavigationView.setOnItemSelectedListener(item -> {
+ String tag = getTopFragment();
+
+ switch (item.getItemId()) {
+ case R.id.mods -> {
+ if (!Objects.equals(tag, Mods.class.getSimpleName())) {
+ selectedFragment = R.id.mods;
+ replaceFragment(new Mods());
+ }
+ return true;
+ }
+ case R.id.hooks -> {
+ if (!Objects.equals(tag, Hooks.class.getSimpleName())) {
+ selectedFragment = R.id.hooks;
+ replaceFragment(new Hooks());
+ }
+ return true;
+ }
+ case R.id.settings -> {
+ if (!Objects.equals(tag, Settings.class.getSimpleName())) {
+ selectedFragment = R.id.settings;
+ replaceFragment(new Settings());
+ }
+ return true;
+ }
+ default -> {
+ return true;
+ }
+ }
+ });
+ }
+
+ private String getTopFragment() {
+ String[] fragment = {null};
+
+ int last = getSupportFragmentManager().getFragments().size() - 1;
+
+ if (last >= 0) {
+ Fragment topFragment = getSupportFragmentManager().getFragments().get(last);
+
+ if (topFragment instanceof Mods)
+ fragment[0] = Mods.class.getSimpleName();
+ else if (topFragment instanceof Hooks)
+ fragment[0] = Hooks.class.getSimpleName();
+ else if (topFragment instanceof Settings)
+ fragment[0] = Settings.class.getSimpleName();
+ }
+
+ return fragment[0];
+ }
+
+ public static void replaceFragment(Fragment fragment) {
+ String tag = fragment.getClass().getSimpleName();
+ FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+ fragmentTransaction.setCustomAnimations(R.anim.fragment_fade_in, R.anim.fragment_fade_out, R.anim.fragment_fade_in, R.anim.fragment_fade_out);
+ fragmentTransaction.replace(R.id.frame_layout, fragment, tag);
+ if (Objects.equals(tag, Mods.class.getSimpleName())) {
+ fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+ } else if (Objects.equals(tag, Hooks.class.getSimpleName()) ||
+ Objects.equals(tag, Settings.class.getSimpleName())) {
+ fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+ fragmentTransaction.addToBackStack(tag);
+ } else {
+ fragmentTransaction.addToBackStack(tag);
+ }
+
+ fragmentTransaction.commit();
+ }
+
+ @SuppressLint("Deprecated")
+ @Override
+ public boolean onPreferenceStartFragment(@NonNull PreferenceFragmentCompat caller, Preference pref) {
+ // Instantiate the new Fragment
+ final Bundle args = pref.getExtras();
+ final Fragment fragment = getSupportFragmentManager().getFragmentFactory().instantiate(getClassLoader(), Objects.requireNonNull(pref.getFragment()));
+ fragment.setArguments(args);
+ fragment.setTargetFragment(caller, 0);
+ // Replace the existing Fragment with the new Fragment
+ replaceFragment(fragment);
+ return true;
+ }
+
+ public void setHeader(Context context, int title) {
+ Toolbar toolbar = ((AppCompatActivity) context).findViewById(R.id.toolbar);
+ ((AppCompatActivity) context).setSupportActionBar(toolbar);
+ toolbar.setTitle(title);
+ }
+
+ public void setHeader(Context context, CharSequence title) {
+ Toolbar toolbar = ((AppCompatActivity) context).findViewById(R.id.toolbar);
+ ((AppCompatActivity) context).setSupportActionBar(toolbar);
+ toolbar.setTitle(title);
+ }
+
+ public static void backButtonEnabled() {
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setDisplayShowHomeEnabled(true);
+ }
+ }
+
+ public static void backButtonDisabled() {
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(false);
+ actionBar.setDisplayShowHomeEnabled(false);
+ }
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (Objects.equals(getTopFragment(), Mods.class.getSimpleName()) ||
+ Objects.equals(getTopFragment(), Hooks.class.getSimpleName()) ||
+ Objects.equals(getTopFragment(), Settings.class.getSimpleName())) {
+ backButtonDisabled();
+ } else {
+ backButtonEnabled();
+ }
+ }
+
+ @Override
+ public boolean onSupportNavigateUp() {
+ if (getSupportFragmentManager().popBackStackImmediate()) {
+ return true;
+ }
+ return super.onSupportNavigateUp();
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+
+ int itemID = item.getItemId();
+
+ if (itemID == android.R.id.home) {
+ getOnBackPressedDispatcher().onBackPressed();
+ return true;
+ }
+ return false;
+ }
+
+ public void showColorPickerDialog(int dialogId, int defaultColor, boolean showPresets, boolean showAlphaSlider, boolean showColorShades) {
+ colorPickerDialog
+ .setColor(defaultColor)
+ .setDialogType(ColorPickerDialog.TYPE_CUSTOM)
+ .setAllowCustom(false)
+ .setAllowPresets(showPresets)
+ .setDialogId(dialogId)
+ .setShowAlphaSlider(showAlphaSlider)
+ .setShowColorShades(showColorShades);
+ colorPickerDialog.show(this);
+ Log.d("ColorPickerDialog", "showColorPickerDialog: " + dialogId);
+ }
+
+ @Override
+ public void onColorSelected(int dialogId, int color) {
+ EventBus.getDefault().post(new ColorSelectedEvent(dialogId, color));
+ }
+
+ @Override
+ public void onDialogDismissed(int dialogId) {
+ EventBus.getDefault().post(new ColorDismissedEvent(dialogId));
+ }
+
+ @Override
+ public void onSearchResultClicked(@NonNull SearchPreferenceResult result) {
+ modsFragment = new Mods();
+ new Handler(getMainLooper()).post(() -> modsFragment.onSearchResultClicked(result));
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/ClockPreviewAdapter.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/ClockPreviewAdapter.java
new file mode 100644
index 000000000..2f1064d6a
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/ClockPreviewAdapter.java
@@ -0,0 +1,222 @@
+package it.dhd.oxygencustomizer.ui.adapters;
+
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_SWITCH;
+
+import android.annotation.SuppressLint;
+import android.app.WallpaperManager;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.os.AsyncTask;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewStub;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.airbnb.lottie.LottieAnimationView;
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.imageview.ShapeableImageView;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Objects;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.models.ClockModel;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+import it.dhd.oxygencustomizer.utils.ViewBindingHelpers;
+import it.dhd.oxygencustomizer.utils.WallpaperUtil;
+import it.dhd.oxygencustomizer.xposed.utils.ViewHelper;
+
+public class ClockPreviewAdapter extends RecyclerView.Adapter {
+
+ private final Context context;
+ private final ArrayList itemList;
+ private static String prefSwitch;
+ private final String prefStyle;
+ private static Bitmap wallpaperBitmap;
+ private LinearLayoutManager linearLayoutManager;
+
+ public ClockPreviewAdapter(Context context, ArrayList itemList, String prefSwitch, String prefStyle) {
+ this.context = context;
+ this.itemList = itemList;
+ ClockPreviewAdapter.prefSwitch = prefSwitch;
+ this.prefStyle = prefStyle;
+
+ new WallpaperLoaderTask(this).execute();
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(context).inflate(
+ Objects.equals(prefSwitch, LOCKSCREEN_CLOCK_SWITCH) ?
+ R.layout.view_clock_preview_lockscreen :
+ R.layout.view_clock_preview_header,
+ parent,
+ false
+ );
+ return new ViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ ClockModel model = itemList.get(position);
+
+ holder.bind(model, position);
+
+ if (wallpaperBitmap != null) {
+ ViewBindingHelpers.setBitmap(holder.wallpaperView, wallpaperBitmap);
+ }
+
+ ViewHelper.loadLottieAnimationView(
+ context,
+ null,
+ holder.clockContainer,
+ position
+ );
+ }
+
+ @Override
+ public int getItemCount() {
+ return itemList.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+
+ private final LinearLayout container;
+ private final TextView title;
+ private final LinearLayout clockContainer;
+ private final ImageView checkIcon;
+ private final MaterialButton button;
+ private final ShapeableImageView wallpaperView;
+
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+
+ container = itemView.findViewById(R.id.clock_preview_child);
+ title = itemView.findViewById(R.id.clock_title);
+ clockContainer = itemView.findViewById(R.id.clock_view_container);
+ checkIcon = itemView.findViewById(R.id.icon_selected);
+ button = itemView.findViewById(R.id.btn_select_style);
+ wallpaperView = itemView.findViewById(R.id.wallpaper_view);
+ }
+
+ public void bind(ClockModel model, int position) {
+ title.setText(model.getTitle());
+
+ button.setOnClickListener(v -> {
+ PreferenceHelper.instance.mPreferences.putInt(prefStyle, position);
+ refreshLayout(this);
+ });
+
+ int adapterPosition = getBindingAdapterPosition();
+ if (PreferenceHelper.instance.mPreferences.getInt(prefStyle, 0) != adapterPosition) {
+ checkIcon.setVisibility(View.GONE);
+ button.setEnabled(true);
+ } else {
+ checkIcon.setVisibility(View.VISIBLE);
+ button.setEnabled(false);
+ }
+
+ clockContainer.removeAllViews();
+ ViewStub viewStub = new ViewStub(context);
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ params.gravity = Gravity.CENTER_VERTICAL;
+ viewStub.setLayoutParams(params);
+ viewStub.setLayoutResource(model.getLayout());
+ clockContainer.addView(viewStub);
+
+ if (viewStub.getParent() != null) {
+ viewStub.inflate();
+ }
+
+ boolean isSelected = adapterPosition == getBindingAdapterPosition();
+ button.setEnabled(!isSelected);
+ checkIcon.setVisibility(isSelected ? View.VISIBLE : View.GONE);
+ }
+ }
+
+ private void refreshLayout(ViewHolder holder) {
+ int firstVisible = linearLayoutManager.findFirstVisibleItemPosition() - 1;
+ int lastVisible = linearLayoutManager.findLastVisibleItemPosition() + 1;
+
+ for (int i = firstVisible; i <= lastVisible; i++) {
+ View view = linearLayoutManager.findViewByPosition(i);
+ if (view == null) continue;
+
+ LinearLayout child = view.findViewById(R.id.clock_preview_child);
+ if (child == null) continue;
+
+ boolean isSelected = view == holder.container;
+ child.findViewById(R.id.btn_select_style).setEnabled(!isSelected);
+ child.findViewById(R.id.icon_selected).setVisibility(!isSelected ?
+ View.GONE :
+ View.VISIBLE
+ );
+ }
+ }
+
+ @Override
+ public void onViewAttachedToWindow(@NonNull ViewHolder holder) {
+ super.onViewAttachedToWindow(holder);
+
+ if (PreferenceHelper.instance.mPreferences.getInt(prefStyle, 0) != holder.getBindingAdapterPosition()) {
+ holder.checkIcon.setVisibility(View.GONE);
+ holder.button.setEnabled(true);
+ } else {
+ holder.checkIcon.setVisibility(View.VISIBLE);
+ holder.button.setEnabled(false);
+ }
+ }
+
+ @Override
+ public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) {
+ super.onAttachedToRecyclerView(recyclerView);
+
+ linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
+ }
+
+ private static class WallpaperLoaderTask extends AsyncTask {
+ private final WeakReference adapterRef;
+
+ WallpaperLoaderTask(ClockPreviewAdapter adapter) {
+ adapterRef = new WeakReference<>(adapter);
+ wallpaperBitmap = null;
+ }
+
+ @Override
+ protected Bitmap doInBackground(Void... voids) {
+ Context context = adapterRef.get().context;
+ if (context == null) return null;
+ return WallpaperUtil.getCompressedWallpaper(
+ context,
+ 80,
+ Objects.equals(prefSwitch, LOCKSCREEN_CLOCK_SWITCH) ?
+ WallpaperManager.FLAG_LOCK :
+ WallpaperManager.FLAG_SYSTEM
+ );
+ }
+
+ @SuppressLint("NotifyDataSetChanged")
+ @Override
+ protected void onPostExecute(Bitmap bitmap) {
+ super.onPostExecute(bitmap);
+ ClockPreviewAdapter adapter = adapterRef.get();
+ if (adapter != null && bitmap != null && Objects.equals(prefSwitch, LOCKSCREEN_CLOCK_SWITCH)) {
+ wallpaperBitmap = bitmap;
+ adapter.notifyDataSetChanged();
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/CreditsAdapter.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/CreditsAdapter.java
new file mode 100644
index 000000000..75efe26b3
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/CreditsAdapter.java
@@ -0,0 +1,104 @@
+package it.dhd.oxygencustomizer.ui.adapters;
+
+import android.content.Intent;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.CircleCrop;
+
+import java.util.List;
+
+import it.dhd.oxygencustomizer.databinding.CreditsHeaderViewBinding;
+import it.dhd.oxygencustomizer.databinding.CreditsItemViewBinding;
+import it.dhd.oxygencustomizer.ui.models.CreditsModel;
+
+public class CreditsAdapter extends RecyclerView.Adapter {
+
+ public static final int VIEW_TYPE_HEADER = 0;
+ public static final int VIEW_TYPE_ITEM = 1;
+
+ private final List items;
+
+ public CreditsAdapter(List items) {
+ this.items = items;
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ return items.get(position).getViewType();
+ }
+
+ @NonNull
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ CreditsItemViewBinding bindingItem = CreditsItemViewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
+ CreditsHeaderViewBinding bindingHeader = CreditsHeaderViewBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
+ return switch (viewType) {
+ case VIEW_TYPE_HEADER -> new HeaderViewHolder(bindingHeader);
+ case VIEW_TYPE_ITEM -> new ItemViewHolder(bindingItem);
+ default -> throw new IllegalArgumentException("Invalid view type");
+ };
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+ if (getItemViewType(position) == VIEW_TYPE_ITEM) {
+ CreditsModel model = items.get(position);
+ ((ItemViewHolder) holder).bind(model);
+ } else if (getItemViewType(position) == VIEW_TYPE_HEADER) {
+ CreditsModel model = items.get(position);
+ ((HeaderViewHolder) holder).bind(model);
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ return items.size();
+ }
+
+ public static class ItemViewHolder extends RecyclerView.ViewHolder {
+
+ private final CreditsItemViewBinding binding;
+
+ public ItemViewHolder(@NonNull CreditsItemViewBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ public void bind(CreditsModel model) {
+ binding.title.setText(model.getTitle());
+ binding.desc.setText(model.getSummary());
+ if (model.getIcon() != 0) {
+ binding.icon.setImageResource(model.getIcon());
+ } else {
+ Glide.with(binding.icon.getContext())
+ .load(model.getDrawable())
+ .transform(new CircleCrop())
+ .into(binding.icon);
+ }
+ if (!TextUtils.isEmpty(model.getUrl())) {
+ binding.listInfoItem.setOnClickListener(v -> v.getContext().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(model.getUrl()))));
+ }
+ }
+ }
+
+ public static class HeaderViewHolder extends RecyclerView.ViewHolder {
+
+ private final CreditsHeaderViewBinding binding;
+
+ HeaderViewHolder(@NonNull CreditsHeaderViewBinding binding) {
+ super(binding.getRoot());
+ this.binding = binding;
+ }
+
+ public void bind(CreditsModel creditsModel) {
+ binding.headerText.setText(creditsModel.getTitle());
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/SnapOnScrollListener.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/SnapOnScrollListener.java
new file mode 100644
index 000000000..1cc47df06
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/adapters/SnapOnScrollListener.java
@@ -0,0 +1,72 @@
+package it.dhd.oxygencustomizer.ui.adapters;
+
+import android.view.View;
+
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.SnapHelper;
+
+public class SnapOnScrollListener extends RecyclerView.OnScrollListener {
+ private final SnapHelper snapHelper;
+ private Behavior behavior = Behavior.NOTIFY_ON_SCROLL;
+ private OnSnapPositionChangeListener onSnapPositionChangeListener;
+
+ private int snapPosition = RecyclerView.NO_POSITION;
+
+ public SnapOnScrollListener(SnapHelper snapHelper) {
+ this.snapHelper = snapHelper;
+ }
+
+ public SnapOnScrollListener(SnapHelper snapHelper, Behavior behavior, OnSnapPositionChangeListener onSnapPositionChangeListener) {
+ this.snapHelper = snapHelper;
+ this.behavior = behavior;
+ this.onSnapPositionChangeListener = onSnapPositionChangeListener;
+ }
+
+ @Override
+ public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+ if (behavior == Behavior.NOTIFY_ON_SCROLL) {
+ maybeNotifySnapPositionChange(recyclerView);
+ }
+ }
+
+ @Override
+ public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
+ if (behavior == Behavior.NOTIFY_ON_SCROLL_STATE_IDLE
+ && newState == RecyclerView.SCROLL_STATE_IDLE) {
+ maybeNotifySnapPositionChange(recyclerView);
+ }
+ }
+
+ private void maybeNotifySnapPositionChange(RecyclerView recyclerView) {
+ int snapPosition = getSnapPosition(recyclerView);
+ boolean snapPositionChanged = this.snapPosition != snapPosition;
+ if (snapPositionChanged) {
+ if (onSnapPositionChangeListener != null) {
+ onSnapPositionChangeListener.onSnapPositionChange(snapPosition);
+ }
+ this.snapPosition = snapPosition;
+ }
+ }
+
+ public int getSnapPosition(RecyclerView recyclerView) {
+ RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
+ if (layoutManager == null) {
+ return RecyclerView.NO_POSITION;
+ }
+ View snapView = snapHelper.findSnapView(layoutManager);
+ if (snapView == null) {
+ return RecyclerView.NO_POSITION;
+ }
+ return layoutManager.getPosition(snapView);
+ }
+
+
+ public enum Behavior {
+ NOTIFY_ON_SCROLL,
+ NOTIFY_ON_SCROLL_STATE_IDLE
+ }
+
+ public interface OnSnapPositionChangeListener {
+ void onSnapPositionChange(int position);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/base/ControlledPreferenceFragmentCompat.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/base/ControlledPreferenceFragmentCompat.java
new file mode 100644
index 000000000..10fa944df
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/base/ControlledPreferenceFragmentCompat.java
@@ -0,0 +1,129 @@
+package it.dhd.oxygencustomizer.ui.base;
+
+import static androidx.preference.PreferenceManager.getDefaultSharedPreferences;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.core.view.MenuHost;
+import androidx.core.view.MenuProvider;
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.RecyclerView;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.activity.MainActivity;
+import it.dhd.oxygencustomizer.utils.AppUtils;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+import it.dhd.oxygencustomizer.xposed.utils.ExtendedSharedPreferences;
+
+public abstract class ControlledPreferenceFragmentCompat extends PreferenceFragmentCompat {
+ public ExtendedSharedPreferences mPreferences;
+ private final SharedPreferences.OnSharedPreferenceChangeListener changeListener = (sharedPreferences, key) -> updateScreen(key);
+
+ public abstract String getTitle();
+
+ public abstract boolean backButtonEnabled();
+
+ public abstract int getLayoutResource();
+
+ public abstract boolean hasMenu();
+ public abstract String[] getScopes();
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ getPreferenceManager().setStorageDeviceProtected();
+ try {
+ setPreferencesFromResource(getLayoutResource(), rootKey);
+ } catch (Exception e) {
+ setPreferencesFromResource(R.xml.mods, rootKey);
+ }
+
+ }
+
+ @Override
+ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ if (hasMenu()) {
+ MenuHost menuHost = requireActivity();
+ // Add menu items without using the Fragment Menu APIs
+ // Note how we can tie the MenuProvider to the viewLifecycleOwner
+ // and an optional Lifecycle.State (here, RESUMED) to indicate when
+ // the menu should be visible
+ menuHost.addMenuProvider(new MenuProvider() {
+ @Override
+ public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
+ // Add menu items here
+ menu.add(0, 1, 0, R.string.restart_scopes)
+ .setIcon(R.drawable.ic_restart)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+ }
+
+ @Override
+ public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
+ // Handle the menu selection
+ if (menuItem.getItemId() == 1) {
+ AppUtils.restartScopes(requireActivity(), getScopes());
+ return true;
+ }
+ return true;
+ }
+ }, getViewLifecycleOwner(), Lifecycle.State.RESUMED);
+ }
+ }
+
+ @NonNull
+ @Override
+ public RecyclerView.Adapter> onCreateAdapter(@NonNull PreferenceScreen preferenceScreen) {
+ mPreferences = ExtendedSharedPreferences.from(getDefaultSharedPreferences(requireContext().createDeviceProtectedStorageContext()));
+
+ mPreferences.registerOnSharedPreferenceChangeListener(changeListener);
+
+ updateScreen(null);
+
+ return super.onCreateAdapter(preferenceScreen);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (getContext() != null) {
+ ((MainActivity) requireActivity()).setHeader(getContext(), getTitle());
+ ((MainActivity) getContext()).getSupportActionBar().setDisplayHomeAsUpEnabled(backButtonEnabled());
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ if (mPreferences != null) {
+ mPreferences.unregisterOnSharedPreferenceChangeListener(changeListener);
+ }
+ super.onDestroy();
+ }
+
+ public void updateScreen(String key) {
+ PreferenceHelper.setupAllPreferences(this.getPreferenceScreen());
+ }
+
+ @Override
+ public void setDivider(Drawable divider) {
+ super.setDivider(new ColorDrawable(Color.TRANSPARENT));
+ }
+
+ @Override
+ public void setDividerHeight(int height) {
+ super.setDividerHeight(0);
+ }
+
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/drawables/RoundedCornerProgressDrawable.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/drawables/RoundedCornerProgressDrawable.java
new file mode 100644
index 000000000..efed1c50d
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/drawables/RoundedCornerProgressDrawable.java
@@ -0,0 +1,74 @@
+package it.dhd.oxygencustomizer.ui.drawables;
+
+import android.content.pm.ActivityInfo;
+import android.content.res.Resources;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.DrawableWrapper;
+import android.graphics.drawable.InsetDrawable;
+
+public final class RoundedCornerProgressDrawable extends InsetDrawable {
+ public RoundedCornerProgressDrawable() {
+ this(null);
+ }
+
+ public RoundedCornerProgressDrawable(Drawable drawable) {
+ super(drawable, 0);
+ }
+
+ public int getChangingConfigurations() {
+ return super.getChangingConfigurations() | ActivityInfo.CONFIG_DENSITY;
+ }
+
+ public Drawable.ConstantState getConstantState() {
+ return new RoundedCornerState(super.getConstantState());
+ }
+
+ protected void onBoundsChange(Rect rect) {
+ super.onBoundsChange(rect);
+ onLevelChange(getLevel());
+ }
+
+ public boolean onLayoutDirectionChanged(int level) {
+ onLevelChange(getLevel());
+ return super.onLayoutDirectionChanged(level);
+ }
+
+ protected boolean onLevelChange(int n) {
+ Drawable drawable = getDrawable();
+ Rect bounds;
+ if (drawable == null) {
+ bounds = null;
+ } else {
+ bounds = drawable.getBounds();
+ }
+ int height = getBounds().height();
+ int level = (getBounds().width() - getBounds().height()) * n / 10000;
+ drawable = getDrawable();
+ if (drawable != null) {
+ drawable.setBounds(getBounds().left, bounds.top, getBounds().left + (height + level), bounds.bottom);
+ }
+ return super.onLevelChange(level);
+ }
+
+ private static final class RoundedCornerState extends Drawable.ConstantState {
+ private final Drawable.ConstantState mWrappedState;
+
+ public RoundedCornerState(Drawable.ConstantState wrappedState) {
+ mWrappedState = wrappedState;
+ }
+
+ public int getChangingConfigurations() {
+ return mWrappedState.getChangingConfigurations();
+ }
+
+ public Drawable newDrawable() {
+ return newDrawable(null, null);
+ }
+
+ public Drawable newDrawable(Resources resources, Resources.Theme theme) {
+ Drawable drawable = mWrappedState.newDrawable(resources, theme);
+ return (Drawable) new RoundedCornerProgressDrawable(((DrawableWrapper) drawable).getDrawable());
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/drawables/TintedDrawableSpan.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/drawables/TintedDrawableSpan.java
new file mode 100644
index 000000000..9d6481616
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/drawables/TintedDrawableSpan.java
@@ -0,0 +1,66 @@
+package it.dhd.oxygencustomizer.ui.drawables;
+
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Paint.FontMetricsInt;
+import android.graphics.drawable.Drawable;
+import android.text.style.DynamicDrawableSpan;
+
+import androidx.annotation.NonNull;
+
+/**
+ * {@link DynamicDrawableSpan} which draws a drawable tinted with the current paint color.
+ */
+public class TintedDrawableSpan extends DynamicDrawableSpan {
+
+ private final Drawable mDrawable;
+ private int mOldTint;
+
+ public TintedDrawableSpan(Context context, int resourceId) {
+ super(ALIGN_BOTTOM);
+ mDrawable = context.getDrawable(resourceId).mutate();
+ mOldTint = 0;
+ mDrawable.setTint(0);
+ }
+
+ @Override
+ public int getSize(@NonNull Paint paint, CharSequence text, int start, int end, FontMetricsInt fm) {
+ fm = fm == null ? paint.getFontMetricsInt() : fm;
+ int iconSize = fm.bottom - fm.top;
+ mDrawable.setBounds(0, 0, iconSize, iconSize);
+ return super.getSize(paint, text, start, end, fm);
+ }
+
+ @Override
+ public void draw(@NonNull Canvas canvas, CharSequence text,
+ int start, int end, float x, int top, int y, int bottom, Paint paint) {
+ int color = paint.getColor();
+ if (mOldTint != color) {
+ mOldTint = color;
+ mDrawable.setTint(mOldTint);
+ }
+ super.draw(canvas, text, start, end, x, top, y, bottom, paint);
+ }
+
+ @Override
+ public Drawable getDrawable() {
+ return mDrawable;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/events/ColorDismissedEvent.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/events/ColorDismissedEvent.java
new file mode 100644
index 000000000..1a95fbefe
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/events/ColorDismissedEvent.java
@@ -0,0 +1,5 @@
+package it.dhd.oxygencustomizer.ui.events;
+
+public record ColorDismissedEvent(int dialogId) {
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/events/ColorSelectedEvent.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/events/ColorSelectedEvent.java
new file mode 100644
index 000000000..7ef9c632f
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/events/ColorSelectedEvent.java
@@ -0,0 +1,6 @@
+package it.dhd.oxygencustomizer.ui.events;
+
+
+public record ColorSelectedEvent(int dialogId, int selectedColor) {
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Credits.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Credits.java
new file mode 100644
index 000000000..42d0a3039
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Credits.java
@@ -0,0 +1,81 @@
+package it.dhd.oxygencustomizer.ui.fragments;
+
+import static it.dhd.oxygencustomizer.ui.adapters.CreditsAdapter.VIEW_TYPE_HEADER;
+import static it.dhd.oxygencustomizer.ui.adapters.CreditsAdapter.VIEW_TYPE_ITEM;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.databinding.CreditsFragmentViewBinding;
+import it.dhd.oxygencustomizer.ui.activity.MainActivity;
+import it.dhd.oxygencustomizer.ui.adapters.CreditsAdapter;
+import it.dhd.oxygencustomizer.ui.models.CreditsModel;
+
+public class Credits extends Fragment {
+
+ private CreditsFragmentViewBinding binding;
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
+ @Nullable Bundle savedInstanceState) {
+ binding = CreditsFragmentViewBinding.inflate(inflater, container, false);
+ ((MainActivity)requireActivity()).setHeader(getContext(), R.string.credits_title);
+ return binding.getRoot();
+
+ }
+
+ @Override
+ public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ List credits = new ArrayList<>();
+ credits.add(new CreditsModel("Special Thanks"));
+ credits.add(new CreditsModel(VIEW_TYPE_ITEM, "Siavash", """
+ For helping with Xposed
+ And his amazing work with PixelXpert
+ github/Siavash""", "", R.drawable.ic_default_person));
+ credits.add(new CreditsModel(VIEW_TYPE_ITEM, "DrDisagree", """
+ For his amazing work with Iconify
+ github/Mahmud0808""", "https://github.com/Mahmud0808", ResourcesCompat.getDrawable(getResources(), R.drawable.drdisagree, requireContext().getTheme())));
+ credits.add(new CreditsModel(VIEW_TYPE_ITEM, "crDroid", """
+ Pulse Controller, check source for more info
+ github/crdroidandroid""", "https://github.com/crdroidandroid", R.drawable.ic_crdroid));
+ credits.add(new CreditsModel(VIEW_TYPE_ITEM, "OmniROM", """
+ For Weather
+ github/OmniROM""", "https://github.com/OmniROM", R.drawable.ic_omnirom));
+ credits.add(new CreditsModel(VIEW_TYPE_ITEM, "Project Matrixx", """
+ For some Illustrations
+ github/ProjectMatrixx""", "https://github.com/ProjectMatrixx", R.drawable.ic_matrixx_logo));
+ credits.add(new CreditsModel(VIEW_TYPE_ITEM, "Superior Extended", """
+ For some customizations
+ github/SuperiorExtended""", "https://github.com/SuperiorExtended/", R.drawable.ic_superior));
+
+ CreditsAdapter adapter = new CreditsAdapter(credits);
+ binding.creditsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+ binding.creditsRecyclerView.setAdapter(adapter);
+
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ binding = null;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Hooks.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Hooks.java
new file mode 100644
index 000000000..b4e6c6d95
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Hooks.java
@@ -0,0 +1,432 @@
+package it.dhd.oxygencustomizer.ui.fragments;
+
+import static it.dhd.oxygencustomizer.utils.Constants.Packages.FRAMEWORK;
+import static it.dhd.oxygencustomizer.utils.Constants.Packages.SYSTEM_UI;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.utils.BootLoopProtector.LOAD_TIME_KEY_KEY;
+import static it.dhd.oxygencustomizer.xposed.utils.BootLoopProtector.PACKAGE_STRIKE_KEY_KEY;
+
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.CountDownTimer;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MenuInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupMenu;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.Fragment;
+
+import com.google.android.material.button.MaterialButton;
+import com.topjohnwu.superuser.Shell;
+import com.topjohnwu.superuser.ipc.RootService;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+
+import it.dhd.oxygencustomizer.IRootProviderService;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.databinding.FragmentHooksBinding;
+import it.dhd.oxygencustomizer.services.RootProvider;
+import it.dhd.oxygencustomizer.utils.AppUtils;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+import it.dhd.oxygencustomizer.xposed.utils.BootLoopProtector;
+
+public class Hooks extends Fragment {
+
+ private FragmentHooksBinding binding;
+ private final String TAG = getClass().getSimpleName();
+ IntentFilter intentFilterHookedPackages = new IntentFilter();
+ private final List hookedPackageList = new ArrayList<>();
+ private List monitorPackageList;
+ private final String LSPosedDB = "/data/adb/lspd/config/modules_config.db";
+ private int dotCount = 0;
+ private ServiceConnection mCoreRootServiceConnection;
+ private IRootProviderService mRootServiceIPC = null;
+ private boolean rebootPending = false;
+ private final String reboot_key = "reboot_pending";
+
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ binding = FragmentHooksBinding.inflate(inflater, container, false);
+
+ if (savedInstanceState != null) {
+ rebootPending = savedInstanceState.getBoolean(reboot_key);
+ }
+
+ //binding.rebootButton.setOnClickListener(view -> AppUtils.Restart("system"));
+
+ if (!rebootPending) {
+ binding.rebootButton.hide();
+ }
+
+ startRootService();
+
+ return binding.getRoot();
+ }
+
+ private void startRootService() {
+ // Start RootService connection
+ Intent intent = new Intent(getContext(), RootProvider.class);
+ mCoreRootServiceConnection = new ServiceConnection() {
+ @Override
+ public void onServiceConnected(ComponentName name, IBinder service) {
+ binding.loadingIndicator.setVisibility(View.GONE);
+ mRootServiceIPC = IRootProviderService.Stub.asInterface(service);
+ onRootServiceStarted();
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName name) {
+ mRootServiceIPC = null;
+ }
+ };
+ RootService.bind(intent, mCoreRootServiceConnection);
+ }
+
+ private void onRootServiceStarted() {
+ if (getContext() == null) {
+ return;
+ }
+
+ intentFilterHookedPackages.addAction(Constants.ACTION_XPOSED_CONFIRMED);
+ getContext().registerReceiver(receiverHookedPackages, intentFilterHookedPackages, Context.RECEIVER_EXPORTED);
+ monitorPackageList = Arrays.asList(getResources().getStringArray(R.array.xposed_scope));
+ checkHookedPackages();
+
+ binding.swipeRefreshLayout.setOnRefreshListener(() -> {
+ checkHookedPackages();
+ binding.swipeRefreshLayout.setRefreshing(false);
+ });
+ }
+
+ private final BroadcastReceiver receiverHookedPackages = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (Objects.equals(intent.getAction(), Constants.ACTION_XPOSED_CONFIRMED)) {
+ String broadcastPackageName = intent.getStringExtra("packageName");
+
+ for (int i = 0; i < binding.content.getChildCount(); i++) {
+ View list = binding.content.getChildAt(i);
+ TextView desc = list.findViewById(R.id.desc);
+ String pkgName = ((TextView) list.findViewById(R.id.title)).getText().toString();
+
+ if (pkgName.equals(broadcastPackageName)) {
+ binding.content.post(() -> {
+ desc.setText(getText(R.string.package_hooked_successful));
+ desc.setTextColor(getContext().getColor(android.R.color.system_accent1_400));
+ });
+ }
+ }
+
+ if (!hookedPackageList.contains(broadcastPackageName)) {
+ hookedPackageList.add(broadcastPackageName);
+ }
+ }
+ }
+ };
+
+
+ private final CountDownTimer countDownTimer = new CountDownTimer(5000, 500) {
+ @Override
+ public void onTick(long millisUntilFinished) {
+ dotCount = (dotCount + 1) % 4;
+ String dots = new String(new char[dotCount]).replace('\0', '.');
+
+ for (int i = 0; i < binding.content.getChildCount(); i++) {
+ View list = binding.content.getChildAt(i);
+ TextView desc = list.findViewById(R.id.desc);
+
+ if (((String) desc.getText()).contains(getString(R.string.package_checking, ""))) {
+ desc.setText(getString(R.string.package_checking, dots));
+ }
+ }
+ }
+
+ @Override
+ public void onFinish() {
+ dotCount = 0;
+ refreshListItem();
+ }
+ };
+
+ private void checkHookedPackages() {
+ hookedPackageList.clear();
+
+ initListItem(monitorPackageList);
+ new Thread(() -> getContext().sendBroadcast(new Intent().setAction(Constants.ACTION_CHECK_XPOSED_ENABLED))).start();
+ waitAndRefresh();
+ }
+
+ private void waitAndRefresh() {
+ countDownTimer.start();
+ }
+
+ private void initListItem(List pack) {
+ dotCount = 0;
+ countDownTimer.cancel();
+
+ if (binding.content.getChildCount() > 0) {
+ binding.content.removeAllViews();
+ }
+
+ for (int i = 0; i < pack.size(); i++) {
+ View list = LayoutInflater.from(getContext()).inflate(R.layout.view_hooked_package_list, binding.content, false);
+ int margin = getResources().getDimensionPixelSize(R.dimen.ui_container_margin_side);
+ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) list.getLayoutParams();
+ if (i == 0) {
+ params.setMargins(margin, dp2px(getContext(), 12), margin, dp2px(getContext(), 6));
+ } else if (i == pack.size() - 1) {
+ params.setMargins(margin, dp2px(getContext(), 6), margin, dp2px(getContext(), 12));
+ }
+
+ TextView title = list.findViewById(R.id.title);
+ title.setText(pack.get(i));
+
+ TextView desc = list.findViewById(R.id.desc);
+ if (isAppInstalled(pack.get(i))) {
+ desc.setText(getString(R.string.package_checking, ""));
+ } else {
+ desc.setText(getText(R.string.package_not_found));
+ desc.setTextColor(getContext().getColor(com.google.android.material.R.color.design_default_color_error));
+ }
+
+ ImageView preview = list.findViewById(R.id.icon);
+ preview.setImageDrawable(getAppIcon(pack.get(i)));
+
+ int finalI = i;
+
+ MaterialButton activateInLSPosed = list.findViewById(R.id.activate_in_lsposed);
+ activateInLSPosed.setOnClickListener(view -> {
+ activateInLSPosed.setEnabled(false);
+ try {
+ if (mRootServiceIPC.activateInLSPosed(pack.get(finalI))) {
+ activateInLSPosed.animate().setDuration(300).withEndAction(() -> activateInLSPosed.setVisibility(View.GONE)).start();
+ Toast.makeText(getContext(), getText(R.string.package_activated), Toast.LENGTH_SHORT).show();
+ binding.rebootButton.show();
+ rebootPending = true;
+ } else {
+ Toast.makeText(getContext(), getText(R.string.package_activation_failed), Toast.LENGTH_SHORT).show();
+ activateInLSPosed.setEnabled(true);
+ }
+ } catch (RemoteException e) {
+ Toast.makeText(getContext(), getText(R.string.package_activation_failed), Toast.LENGTH_SHORT).show();
+ activateInLSPosed.setEnabled(true);
+ e.printStackTrace();
+ }
+ });
+
+ list.setOnClickListener(view -> {
+ // show ripple effect and do nothing
+ });
+
+ PopupMenu popupMenu = new PopupMenu(getContext(), list, Gravity.END);
+ MenuInflater inflater = popupMenu.getMenuInflater();
+ inflater.inflate(R.menu.hooks_menu, popupMenu.getMenu());
+
+ popupMenu.setOnMenuItemClickListener(item -> {
+ int itemId = item.getItemId();
+
+ if (itemId == R.id.launch_app) {
+ Intent intent = getContext()
+ .getPackageManager()
+ .getLaunchIntentForPackage(pack.get(finalI));
+ if (intent != null) {
+ startActivity(intent);
+ } else {
+ Toast.makeText(
+ getContext(),
+ getContext().getString(R.string.package_not_launchable),
+ Toast.LENGTH_SHORT
+ ).show();
+ }
+ } else if (itemId == R.id.restart_app) {
+ handleApplicationRestart(pack.get(finalI));
+ }
+
+ return true;
+ });
+
+ list.setOnLongClickListener(v -> {
+ popupMenu.show();
+ return true;
+ });
+
+ binding.content.addView(list);
+ }
+ }
+
+ private void handleApplicationRestart(String packageName) {
+ if (Constants.Packages.FRAMEWORK.equals(packageName)) {
+ AppUtils.restartScopes(requireContext(), new String[]{FRAMEWORK});
+ } else if (SYSTEM_UI.equals(packageName)) {
+ AppUtils.restartScopes(requireContext(), new String[]{SYSTEM_UI});
+ } else {
+ Shell.cmd(
+ "killall " + packageName,
+ "am force-stop " + packageName
+ ).exec();
+ Intent intent = getContext()
+ .getPackageManager()
+ .getLaunchIntentForPackage(packageName);
+ if (intent != null) {
+ startActivity(intent);
+ }
+ }
+ }
+
+ private void refreshListItem() {
+ for (int i = 0; i < binding.content.getChildCount(); i++) {
+ View list = binding.content.getChildAt(i);
+ TextView desc = list.findViewById(R.id.desc);
+ String pkgName = ((TextView) list.findViewById(R.id.title)).getText().toString();
+
+ if (hookedPackageList.contains(pkgName)) {
+ desc.setText(getText(R.string.package_hooked_successful));
+ desc.setTextColor(getContext().getColor(android.R.color.system_accent1_400));
+ } else {
+ desc.setTextColor(getContext().getColor(R.color.error));
+
+ desc.setText(getText(
+ isAppInstalled(pkgName)
+ ? checkLSPosedDB(pkgName)
+ ? isBootLooped(pkgName)
+ ? R.string.package_hook_bootlooped
+ : R.string.package_hook_no_response
+ : R.string.package_not_hook_enabled
+ : R.string.package_not_found));
+ }
+
+ if (desc.getText() == getText(R.string.package_not_hook_enabled)) {
+ MaterialButton activateInLSPosed = list.findViewById(R.id.activate_in_lsposed);
+ activateInLSPosed.setVisibility(View.VISIBLE);
+ activateInLSPosed.setEnabled(true);
+ }
+ }
+ }
+
+ private boolean isAppInstalled(String packageName) {
+ try {
+ return mRootServiceIPC.isPackageInstalled(packageName);
+ } catch (RemoteException e) {
+ return false;
+ }
+ }
+
+ private Drawable getAppIcon(String packageName) {
+ try {
+ return getContext().getPackageManager().getApplicationIcon(packageName);
+ } catch (PackageManager.NameNotFoundException ignored) {
+ return ContextCompat.getDrawable(getContext(), R.drawable.ic_android);
+ }
+ }
+
+ private boolean checkLSPosedDB(String pkgName) {
+ try {
+ return mRootServiceIPC.checkLSPosedDB(pkgName);
+ } catch (RemoteException e) {
+ return false;
+ }
+ }
+
+ private boolean isBootLooped(String pkgName) {
+ if (PreferenceHelper.getModulePrefs() != null) {
+ SharedPreferences prefs = PreferenceHelper.getModulePrefs();
+ String loadTimeKey = String.format("%s%s", LOAD_TIME_KEY_KEY, pkgName);
+ String strikeKey = String.format("%s%s", PACKAGE_STRIKE_KEY_KEY, pkgName);
+ long currentTime = Calendar.getInstance().getTime().getTime();
+ long lastLoadTime = prefs.getLong(loadTimeKey, 0);
+ int strikeCount = prefs.getInt(strikeKey, 0);
+
+ if (strikeCount >= 3) {
+ return true;
+ }
+ return false;
+ }
+ return false;
+ }
+
+ private int dp2px(Context context, int dp) {
+ return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
+ }
+
+ @SuppressWarnings("unused")
+ public static class StringBooleanMap {
+ private final HashMap map = new HashMap<>();
+
+ public void put(String key, boolean value) {
+ map.put(key, value);
+ }
+
+ public boolean get(String key) {
+ Boolean value = map.get(key);
+ return value != null ? value : false;
+ }
+
+ public boolean containsKey(String key) {
+ return map.containsKey(key);
+ }
+
+ public void remove(String key) {
+ map.remove(key);
+ }
+
+ public void clear() {
+ map.clear();
+ }
+ }
+
+ @Override
+ public void onSaveInstanceState(@NonNull Bundle outState) {
+ outState.putBoolean(reboot_key, rebootPending);
+ super.onSaveInstanceState(outState);
+ }
+
+ @Override
+ public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
+ super.onViewStateRestored(savedInstanceState);
+ if (savedInstanceState != null) {
+ rebootPending = savedInstanceState.getBoolean(reboot_key);
+ }
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ countDownTimer.cancel();
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ try {
+ getContext().unregisterReceiver(receiverHookedPackages);
+ } catch (Exception ignored) {
+ }
+ countDownTimer.cancel();
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Mods.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Mods.java
new file mode 100644
index 000000000..dee201e17
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Mods.java
@@ -0,0 +1,230 @@
+package it.dhd.oxygencustomizer.ui.fragments;
+
+
+import static androidx.navigation.fragment.FragmentKt.findNavController;
+
+import static it.dhd.oxygencustomizer.ui.activity.MainActivity.backButtonDisabled;
+import static it.dhd.oxygencustomizer.ui.activity.MainActivity.prefsList;
+import static it.dhd.oxygencustomizer.ui.activity.MainActivity.replaceFragment;
+
+import android.net.Uri;
+import android.os.Bundle;
+import android.util.Log;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.navigation.NavController;
+import androidx.navigation.Navigation;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.preferencesearch.SearchConfiguration;
+import it.dhd.oxygencustomizer.customprefs.preferencesearch.SearchPreference;
+import it.dhd.oxygencustomizer.customprefs.preferencesearch.SearchPreferenceResult;
+import it.dhd.oxygencustomizer.databinding.ActivityMainBinding;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.ui.fragments.mods.Launcher;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class Mods extends ControlledPreferenceFragmentCompat {
+
+ SearchPreference searchPreference;
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.app_name);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return false;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.mods;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return false;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return null;
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+
+ searchPreference = findPreference("searchPreference");
+ SearchConfiguration config = searchPreference.getSearchConfiguration();
+ config.setActivity((AppCompatActivity) requireActivity());
+ config.setFragmentContainerViewId(R.id.frame_layout);
+
+ for (Object[] obj : prefsList) {
+ config.index((Integer) obj[0]).addBreadcrumb(this.getResources().getString((Integer) obj[1]));
+ }
+
+ config.setBreadcrumbsEnabled(true);
+ config.setHistoryEnabled(true);
+ config.setFuzzySearchEnabled(false);
+ }
+
+ public void onSearchResultClicked(SearchPreferenceResult result) {
+ Log.d("Mods", "onSearchResultClicked: " + result.getKey() + " " + result.getResourceFile() + " " + result.toString());
+ if (result.getResourceFile() == R.xml.mods) {
+ if (searchPreference != null) searchPreference.setVisible(false);
+ SearchPreferenceResult.highlight(new Mods(), result.getKey());
+ } else {
+ for (Object[] obj : prefsList) {
+ if ((Integer) obj[0] == result.getResourceFile()) {
+ replaceFragment((PreferenceFragmentCompat) obj[2]);
+ SearchPreferenceResult.highlight((PreferenceFragmentCompat) obj[2], result.getKey());
+ break;
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ backButtonDisabled();
+ }
+
+ public static class Sound extends ControlledPreferenceFragmentCompat {
+
+ public Sound() {
+
+ }
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.sound);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.sound_mods;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+ }
+
+ public static class VolumePanelCustomizations extends ControlledPreferenceFragmentCompat {
+
+ public VolumePanelCustomizations() {
+
+ }
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.volume_panel_custom_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.volume_panel_customizations;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+ }
+
+ public static class Misc extends ControlledPreferenceFragmentCompat {
+
+ public Misc() {
+
+ }
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.misc);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.misc_prefs;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+ }
+
+ public static class PackageManager extends ControlledPreferenceFragmentCompat {
+
+ public PackageManager() {
+
+ }
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.package_manager);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.package_manager_prefs;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Settings.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Settings.java
new file mode 100644
index 000000000..3a56da229
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/Settings.java
@@ -0,0 +1,124 @@
+package it.dhd.oxygencustomizer.ui.fragments;
+
+import static it.dhd.oxygencustomizer.utils.Constants.Packages.SYSTEM_UI;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Bundle;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.activity.MainActivity;
+import it.dhd.oxygencustomizer.utils.AppUtils;
+import it.dhd.oxygencustomizer.utils.PrefManager;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+
+public class Settings extends PreferenceFragmentCompat {
+
+ private static final int REQUEST_IMPORT = 98;
+ private static final int REQUEST_EXPORT = 99;
+
+ Preference ghPref, deleteAllPref, importPref, exportPref, creditsPref;
+
+ @Override
+ public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
+ setPreferencesFromResource(R.xml.own_settings, rootKey);
+
+ ghPref = findPreference("GitHubRepo");
+ deleteAllPref = findPreference("deleteAllPrefs");
+ exportPref = findPreference("export");
+ importPref = findPreference("import");
+ creditsPref = findPreference("credits");
+
+ if (ghPref != null) {
+ ghPref.setOnPreferenceClickListener(preference -> {
+ // Open GitHub
+ requireActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/DHD2280/Oxygen-Customizer")));
+ return true;
+ });
+ }
+
+ if (deleteAllPref != null) {
+ deleteAllPref.setOnPreferenceClickListener(preference -> {
+ // Delete all data
+ PrefManager.clearPrefs(requireContext().createDeviceProtectedStorageContext().getSharedPreferences(BuildConfig.APPLICATION_ID + "_preferences", Context.MODE_PRIVATE));
+ AppUtils.restartAllScope(new String[]{SYSTEM_UI});
+ return true;
+ });
+ }
+
+ if (exportPref != null) {
+ exportPref.setOnPreferenceClickListener(preference -> {
+ // Export data
+ importExportSettings(true);
+ return true;
+ });
+ }
+
+ if (importPref != null) {
+ importPref.setOnPreferenceClickListener(preference -> {
+ // Export data
+ importExportSettings(false);
+ return true;
+ });
+ }
+
+ if (creditsPref != null) {
+ creditsPref.setOnPreferenceClickListener(preference -> {
+ MainActivity.replaceFragment(new Credits());
+ return true;
+ });
+ }
+
+ }
+
+ private void importExportSettings(boolean export) {
+ Intent fileIntent = new Intent();
+ fileIntent.setAction(export ? Intent.ACTION_CREATE_DOCUMENT : Intent.ACTION_GET_CONTENT);
+ fileIntent.setType("*/*");
+ fileIntent.putExtra(Intent.EXTRA_TITLE, "OxygenCustomizer_Config" + ".bin");
+ fileIntent.putExtra("export", export);
+ mImportExportLauncher.launch(fileIntent);
+ }
+
+ ActivityResultLauncher mImportExportLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
+ result -> {
+ if (result.getResultCode() == Activity.RESULT_OK) {
+ Intent data = result.getData();
+ if (data == null) return;
+ boolean export = data.getBooleanExtra("export", true);
+
+ SharedPreferences prefs = requireContext().createDeviceProtectedStorageContext().getSharedPreferences(BuildConfig.APPLICATION_ID + "_preferences", Context.MODE_PRIVATE);
+
+ if (export) {
+ try {
+ PrefManager.exportPrefs(prefs, requireContext().getContentResolver().openOutputStream(data.getData()));
+ } catch (Exception ignored) {
+ }
+ } else {
+ try {
+ PrefManager.importPath(prefs, requireContext().getContentResolver().openInputStream(data.getData()));
+ } catch (Exception ignored) {
+ }
+ }
+ }
+ });
+
+ @Override
+ public void setDivider(Drawable divider) {
+ super.setDivider(new ColorDrawable(Color.TRANSPARENT));
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Buttons.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Buttons.java
new file mode 100644
index 000000000..107e4257c
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Buttons.java
@@ -0,0 +1,31 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+
+public class Buttons extends ControlledPreferenceFragmentCompat {
+ @Override
+ public String getTitle() {
+ return getString(R.string.buttons_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.buttons_prefs;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return false;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return null;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Launcher.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Launcher.java
new file mode 100644
index 000000000..57a7b385e
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Launcher.java
@@ -0,0 +1,37 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class Launcher extends ControlledPreferenceFragmentCompat {
+ @Override
+ public String getTitle() {
+ return getString(R.string.launcher_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.launcher_mods;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.LAUNCHER};
+ }
+
+ @Override
+ public void updateScreen(String key) {
+ super.updateScreen(key);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Navigation.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Navigation.java
new file mode 100644
index 000000000..987be0b69
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Navigation.java
@@ -0,0 +1,33 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class Navigation extends ControlledPreferenceFragmentCompat {
+ @Override
+ public String getTitle() {
+ return getString(R.string.navbar_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.navbar_settings;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Statusbar.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Statusbar.java
new file mode 100644
index 000000000..c59518edc
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/Statusbar.java
@@ -0,0 +1,323 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods;
+
+import static android.content.Context.BATTERY_SERVICE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DOTTED_CIRCLE;
+
+import android.content.res.Configuration;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.os.BatteryManager;
+import android.os.Bundle;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.ListWithPopUpPreference;
+import it.dhd.oxygencustomizer.customprefs.dialogadapter.ListPreferenceAdapter;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.batterystyles.BatteryDrawable;
+import it.dhd.oxygencustomizer.xposed.batterystyles.CircleBattery;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBattery;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryA;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryB;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryC;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryColorOS;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryD;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryE;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryF;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryG;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryH;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryI;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryJ;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryK;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryL;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryM;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryMIUIPill;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryN;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryO;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatterySmiley;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryStyleA;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryStyleB;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryiOS15;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryiOS16;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryAiroo;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryCapsule;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryLorn;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryMx;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryOrigami;
+import it.dhd.oxygencustomizer.xposed.batterystyles.RLandscapeBattery;
+import it.dhd.oxygencustomizer.xposed.batterystyles.RLandscapeBatteryColorOS;
+import it.dhd.oxygencustomizer.xposed.batterystyles.RLandscapeBatteryStyleA;
+import it.dhd.oxygencustomizer.xposed.batterystyles.RLandscapeBatteryStyleB;
+
+public class Statusbar extends ControlledPreferenceFragmentCompat {
+ @Override
+ public String getTitle() {
+ return getString(R.string.statusbar_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.statusbar;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+
+ public static class BatteryBar extends ControlledPreferenceFragmentCompat {
+ @Override
+ public String getTitle() {
+ return getString(R.string.statusbar_batterybar_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.battery_bar_settings;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return false;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return null;
+ }
+ }
+
+ public static class Notifications extends ControlledPreferenceFragmentCompat {
+ @Override
+ public String getTitle() {
+ return getString(R.string.statusbar_notifications);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.statusbar_notifications;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+ }
+
+ public static class Clock extends ControlledPreferenceFragmentCompat {
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.status_bar_clock_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.statusbar_clock;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+ }
+
+ public static class BatteryIcon extends ControlledPreferenceFragmentCompat {
+
+ ListWithPopUpPreference mBatteryStyle, mChargingIconStock, mChargingIcon;
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.statusbar_battery_icon_options);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+
+ boolean nightMode = (requireContext().getResources().getConfiguration().uiMode
+ & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
+ int batteryColor = nightMode ? Color.WHITE : Color.BLACK;
+ Drawable[] batteryDrawables = new Drawable[] {
+ new RLandscapeBattery(requireContext(), batteryColor, false),
+ new LandscapeBattery(requireContext(), batteryColor, false),
+ new PortraitBatteryCapsule(requireContext(), batteryColor, false),
+ new PortraitBatteryLorn(requireContext(), batteryColor, false),
+ new PortraitBatteryMx(requireContext(), batteryColor, false),
+ new PortraitBatteryAiroo(requireContext(), batteryColor, false),
+ new RLandscapeBatteryStyleA(requireContext(), batteryColor, false),
+ new LandscapeBatteryStyleA(requireContext(), batteryColor, false),
+ new RLandscapeBatteryStyleB(requireContext(), batteryColor, false),
+ new LandscapeBatteryStyleB(requireContext(), batteryColor, false),
+ new LandscapeBatteryiOS15(requireContext(), batteryColor, false),
+ new LandscapeBatteryiOS16(requireContext(), batteryColor, false),
+ new PortraitBatteryOrigami(requireContext(), batteryColor, false),
+ new LandscapeBatterySmiley(requireContext(), batteryColor, false),
+ new LandscapeBatteryMIUIPill(requireContext(), batteryColor, false),
+ new LandscapeBatteryColorOS(requireContext(), batteryColor, false),
+ new RLandscapeBatteryColorOS(requireContext(), batteryColor, false),
+ new LandscapeBatteryA(requireContext(), batteryColor, false),
+ new LandscapeBatteryB(requireContext(), batteryColor, false),
+ new LandscapeBatteryC(requireContext(), batteryColor, false),
+ new LandscapeBatteryD(requireContext(), batteryColor, false),
+ new LandscapeBatteryE(requireContext(), batteryColor, false),
+ new LandscapeBatteryF(requireContext(), batteryColor, false),
+ new LandscapeBatteryG(requireContext(), batteryColor, false),
+ new LandscapeBatteryH(requireContext(), batteryColor, false),
+ new LandscapeBatteryI(requireContext(), batteryColor, false),
+ new LandscapeBatteryJ(requireContext(), batteryColor, false),
+ new LandscapeBatteryK(requireContext(), batteryColor, false),
+ new LandscapeBatteryL(requireContext(), batteryColor, false),
+ new LandscapeBatteryM(requireContext(), batteryColor, false),
+ new LandscapeBatteryN(requireContext(), batteryColor, false),
+ new LandscapeBatteryO(requireContext(), batteryColor, false),
+ new CircleBattery(requireContext(), batteryColor, false),
+ new CircleBattery(requireContext(), batteryColor, false)
+ };
+
+
+ int[] chargingIcons = new int[]{
+ R.drawable.ic_charging_bold, // Bold
+ R.drawable.ic_charging_asus, // Asus
+ R.drawable.ic_charging_buddy, // Buddy
+ R.drawable.ic_charging_evplug, // EV Plug
+ R.drawable.ic_charging_idc, // IDC
+ R.drawable.ic_charging_ios, // IOS
+ R.drawable.ic_charging_koplak, // Koplak
+ R.drawable.ic_charging_miui, // MIUI
+ R.drawable.ic_charging_mmk, // MMK
+ R.drawable.ic_charging_moto, // Moto
+ R.drawable.ic_charging_nokia, // Nokia
+ R.drawable.ic_charging_plug, // Plug
+ R.drawable.ic_charging_powercable, // Power Cable
+ R.drawable.ic_charging_powercord, // Power Cord
+ R.drawable.ic_charging_powerstation, // Power Station
+ R.drawable.ic_charging_realme, // Realme
+ R.drawable.ic_charging_soak, // Soak
+ R.drawable.ic_charging_stres, // Stres
+ R.drawable.ic_charging_strip, // Strip
+ R.drawable.ic_charging_usbcable, // USB Cable
+ R.drawable.ic_charging_xiaomi, // Xiaomi
+ };
+
+ BatteryManager bm = (BatteryManager) requireContext().getSystemService(BATTERY_SERVICE);
+ int batLevel = bm.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
+
+ for (Drawable batteryIcon : batteryDrawables) {
+ ((BatteryDrawable)batteryIcon).setBatteryLevel(batLevel);
+ if (batteryIcon instanceof CircleBattery && batteryIcon == batteryDrawables[batteryDrawables.length-1]) {
+ ((CircleBattery)batteryIcon).setMeterStyle(BATTERY_STYLE_DOTTED_CIRCLE);
+ }
+ ((BatteryDrawable)batteryIcon).setColors(batteryColor, batteryColor, batteryColor);
+ }
+
+ mBatteryStyle = findPreference("battery_icon_style");
+ if (mBatteryStyle != null) {
+ mBatteryStyle.createDefaultAdapter(batteryDrawables);
+ mBatteryStyle.setAdapterType(ListPreferenceAdapter.TYPE_BATTERY_ICONS);
+ }
+
+ mChargingIcon = findPreference("battery_charging_icon_style");
+ if (mChargingIcon != null) {
+ List mValues = new ArrayList<>();
+ for(int i = 0; i fpIconsEntries = new ArrayList<>(), fpIconsValues = new ArrayList<>();
+ List fpIconsDrawables = new ArrayList<>();
+ while (requireContext()
+ .getResources()
+ .getIdentifier(
+ "fingerprint_" + maxIndex,
+ "drawable",
+ BuildConfig.APPLICATION_ID
+ ) != 0) {
+ maxIndex++;
+ }
+
+ for (int i = 0; i < maxIndex; i++) {
+ fpIconsEntries.add("Fingerprint " + i);
+ fpIconsValues.add(String.valueOf(i));
+ fpIconsDrawables.add(
+ ResourcesCompat.getDrawable(
+ requireContext().getResources(),
+ requireContext().getResources().getIdentifier(
+ "fingerprint_" + i,
+ "drawable",
+ BuildConfig.APPLICATION_ID
+ ),
+ requireContext().getTheme()
+ ));
+ }
+ if (mLockscreenFpIcons != null) {
+ mLockscreenFpIcons.setEntries(fpIconsEntries.toArray(new CharSequence[0]));
+ mLockscreenFpIcons.setEntryValues(fpIconsValues.toArray(new CharSequence[0]));
+ mLockscreenFpIcons.createDefaultAdapter(fpIconsDrawables.toArray(new Drawable[0]));
+ mLockscreenFpIcons.setAdapterType(ListPreferenceAdapter.TYPE_BATTERY_ICONS);
+ }
+
+ Preference mFingerprintPicker = findPreference("lockscreen_fp_icon_picker");
+ if (mFingerprintPicker != null) {
+ mFingerprintPicker.setOnPreferenceClickListener(preference -> {
+ if (!AppUtils.hasStoragePermission()) {
+ AppUtils.requestStoragePermission(requireContext());
+ } else {
+ launchFilePicker(startActivityIntent, "image/*");
+ }
+ return true;
+ });
+ }
+ }
+
+ ActivityResultLauncher startActivityIntent = registerForActivityResult(
+ new ActivityResultContracts.StartActivityForResult(),
+ result -> {
+ if (result.getResultCode() == Activity.RESULT_OK) {
+ Intent data = result.getData();
+ String path = getRealPath(data);
+
+ if (path != null && moveToOCHiddenDir(path, LOCKSCREEN_FINGERPRINT_FILE)) {
+ mPreferences.edit().putString(LOCKSCREEN_FINGERPRINT_STYLE, "-1").apply();
+ Toast.makeText(getContext(), requireContext().getResources().getString(R.string.toast_applied), Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(getContext(), requireContext().getResources().getString(R.string.toast_rename_file), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ public static class LockscreenClock extends ControlledPreferenceFragmentCompat {
+ @Override
+ public String getTitle() {
+ return getString(R.string.lockscreen_clock);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.lockscreen_clock;
+ }
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+ private int type = 0;
+
+
+ ActivityResultLauncher startActivityIntent = registerForActivityResult(
+ new ActivityResultContracts.StartActivityForResult(),
+ result -> {
+ if (result.getResultCode() == Activity.RESULT_OK) {
+ Intent data = result.getData();
+ String path = getRealPath(data);
+ String destination = "";
+ if (type == 0)
+ destination = LOCKSCREEN_USER_IMAGE;
+ else
+ destination = LOCKSCREEN_CLOCK_FONT_DIR;
+
+ if (path != null && moveToOCHiddenDir(path, destination)) {
+ if (Objects.equals(destination, LOCKSCREEN_CLOCK_FONT_DIR)) {
+ mPreferences.edit().putBoolean(LOCKSCREEN_CLOCK_CUSTOM_FONT, false).apply();
+ mPreferences.edit().putBoolean(LOCKSCREEN_CLOCK_CUSTOM_FONT, true).apply();
+ }
+ Toast.makeText(getContext(), requireContext().getResources().getString(R.string.toast_applied), Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(getContext(), requireContext().getResources().getString(R.string.toast_rename_file), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+
+ RecyclerPreference mLockscreenClockStyles = findPreference("lockscreen_clock_custom");
+ if (mLockscreenClockStyles != null) {
+ mLockscreenClockStyles.setLayoutManager(new CarouselLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false));
+ mLockscreenClockStyles.setAdapter(initLockscreenClockStyles());
+ mLockscreenClockStyles.setPreference(LOCKSCREEN_CLOCK_STYLE, 0);
+ }
+
+ Preference mLockscreenUserImage = findPreference("lockscreen_clock_custom_user_image_picker");
+ if (mLockscreenUserImage != null) {
+ mLockscreenUserImage.setOnPreferenceClickListener(preference -> {
+ pick("image");
+ type = 0;
+ return true;
+ });
+ }
+
+ Preference mLockscreenCustomFont = findPreference("lockscreen_clock_font_custom");
+ if (mLockscreenCustomFont != null) {
+ mLockscreenCustomFont.setOnPreferenceClickListener(preference -> {
+ pick("font");
+ type = 1;
+ return true;
+ });
+ }
+
+ }
+
+ private void pick(String what) {
+ if (!AppUtils.hasStoragePermission()) {
+ AppUtils.requestStoragePermission(requireContext());
+ } else {
+ if (what.equals("font"))
+ launchFilePicker(startActivityIntent, "font/*");
+ else if (what.equals("image"))
+ launchFilePicker(startActivityIntent, "image/*");
+ }
+ }
+
+ private ClockPreviewAdapter initLockscreenClockStyles() {
+ ArrayList ls_clock = new ArrayList<>();
+
+ int maxIndex = 0;
+ while (requireContext()
+ .getResources()
+ .getIdentifier(
+ "preview_lockscreen_clock_" + maxIndex,
+ "layout",
+ BuildConfig.APPLICATION_ID
+ ) != 0) {
+ maxIndex++;
+ }
+
+ for (int i = 0; i < maxIndex; i++) {
+ ls_clock.add(new ClockModel(
+ i == 0 ?
+ "No Clock" :
+ "Clock Style " + i,
+ requireContext()
+ .getResources()
+ .getIdentifier(
+ LOCKSCREEN_CLOCK_LAYOUT + i,
+ "layout",
+ BuildConfig.APPLICATION_ID
+ )
+ ));
+ }
+
+ return new ClockPreviewAdapter(requireContext(), ls_clock, LOCKSCREEN_CLOCK_SWITCH, LOCKSCREEN_CLOCK_STYLE);
+ }
+
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/lockscreen/LockscreenWeather.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/lockscreen/LockscreenWeather.java
new file mode 100644
index 000000000..291fe6256
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/lockscreen/LockscreenWeather.java
@@ -0,0 +1,436 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.lockscreen;
+
+import static it.dhd.oxygencustomizer.ui.activity.LocationBrowseActivity.DATA_LOCATION_LAT;
+import static it.dhd.oxygencustomizer.ui.activity.LocationBrowseActivity.DATA_LOCATION_LON;
+import static it.dhd.oxygencustomizer.ui.activity.LocationBrowseActivity.DATA_LOCATION_NAME;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_CUSTOM_LOCATION;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_ICON_PACK;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_PROVIDER;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_UNITS;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_UPDATE_INTERVAL;
+import static it.dhd.oxygencustomizer.weather.AbstractWeatherProvider.PART_COORDINATES;
+
+import android.Manifest;
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.graphics.drawable.Drawable;
+import android.location.LocationManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.Settings;
+import android.util.Log;
+import android.widget.CompoundButton;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.content.res.AppCompatResources;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.preference.EditTextPreference;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreferenceCompat;
+
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.ListWithPopUpPreference;
+import it.dhd.oxygencustomizer.ui.activity.LocationBrowseActivity;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+import it.dhd.oxygencustomizer.weather.Config;
+import it.dhd.oxygencustomizer.weather.WeatherUpdateService;
+import it.dhd.oxygencustomizer.xposed.utils.OmniJawsClient;
+
+public class LockscreenWeather
+ extends ControlledPreferenceFragmentCompat
+ implements OmniJawsClient.OmniJawsObserver,
+ Preference.OnPreferenceChangeListener {
+
+ private static final String DEFAULT_WEATHER_ICON_PACKAGE = "it.dhd.oxygencustomizer.google";
+ private SharedPreferences mPrefs = PreferenceHelper.instance.mPreferences;
+ private ListPreference mProvider;
+ private SwitchPreferenceCompat mCustomLocation;
+ private ListPreference mUnits;
+ private SwitchPreferenceCompat mEnable;
+ private boolean mTriggerPermissionCheck;
+ private ListPreference mUpdateInterval;
+ private ListWithPopUpPreference mWeatherIconPack;
+ private Preference mUpdateStatus;
+ private Handler mHandler = new Handler();
+ protected boolean mShowIconPack = true;
+ private EditTextPreference mOwmKey;
+ private OmniJawsClient mWeatherClient;
+ private Preference mCustomLocationActivity;
+ private static final String PREF_KEY_CUSTOM_LOCATION = "weather_custom_location";
+ private static final String WEATHER_ICON_PACK = "weather_icon_pack";
+ private static final String PREF_KEY_UPDATE_STATUS = "update_status";
+ private static final String CHRONUS_ICON_PACK_INTENT = "com.dvtonder.chronus.ICON_PACK";
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.lockscreen_weather);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.weather_settings;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+ mWeatherClient = new OmniJawsClient(getContext(), false);
+
+ doLoadPreferences();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mWeatherClient.addObserver(this);
+ doLoadPreferences();
+ // values can be changed from outside
+ if (mTriggerPermissionCheck) {
+ checkLocationPermissions(true);
+ mTriggerPermissionCheck = false;
+ }
+ queryAndUpdateWeather();
+ }
+
+ ActivityResultLauncher mCustomLocationLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
+ result -> {
+ if (result.getResultCode() == Activity.RESULT_OK) {
+ Intent intent = result.getData();
+ if (intent.hasExtra(DATA_LOCATION_NAME)) {
+ String locationName = intent.getStringExtra(DATA_LOCATION_NAME);
+ double lat = intent.getDoubleExtra(DATA_LOCATION_LAT, 0f);
+ double lon = intent.getDoubleExtra(DATA_LOCATION_LON, 0f);
+ String locationId = String.format(Locale.US, PART_COORDINATES, lat, lon);
+ Config.setLocationId(getContext(), locationId);
+ Config.setLocationName(getContext(), locationName);
+ forceRefreshWeatherSettings();
+ }
+ }
+ });
+
+ private void checkLocationPermissions(boolean force) {
+ if (getContext().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
+ != PackageManager.PERMISSION_GRANTED
+ || getContext().checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION)
+ != PackageManager.PERMISSION_GRANTED ||
+ getContext().checkSelfPermission(Manifest.permission.ACCESS_BACKGROUND_LOCATION)
+ != PackageManager.PERMISSION_GRANTED) {
+ requestPermissionLauncher.launch(new String[]{
+ Manifest.permission.ACCESS_FINE_LOCATION,
+ Manifest.permission.ACCESS_COARSE_LOCATION,
+ Manifest.permission.ACCESS_BACKGROUND_LOCATION
+ });
+ } else {
+ if (force) {
+ forceRefreshWeatherSettings();
+ }
+ queryAndUpdateWeather();
+ }
+ }
+
+ private boolean doCheckLocationEnabled() {
+ LocationManager lm = (LocationManager) requireContext().getSystemService(Context.LOCATION_SERVICE);
+ return lm.isLocationEnabled();
+ }
+
+ private void checkLocationEnabled() {
+ if (!doCheckLocationEnabled()) {
+ showDialog();
+ } else {
+ checkLocationPermissions(false);
+ }
+ }
+
+ private void checkLocationEnabledInitial() {
+ if (!doCheckLocationEnabled()) {
+ showDialog();
+ } else {
+ checkLocationPermissions(true);
+ }
+ }
+
+ private void showDialog() {
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext());
+ final Dialog dialog;
+
+ // Build and show the dialog
+ builder.setTitle(R.string.weather_retrieve_location_dialog_title);
+ builder.setMessage(R.string.weather_retrieve_location_dialog_message);
+ builder.setCancelable(false);
+ builder.setPositiveButton(R.string.weather_retrieve_location_dialog_enable_button,
+ (dialog1, whichButton) -> {
+ mTriggerPermissionCheck = true;
+ Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ startActivity(intent);
+ });
+ builder.setNegativeButton(android.R.string.cancel, null);
+ dialog = builder.create();
+ dialog.show();
+ }
+
+ private void disableService() {
+ // stop any pending
+ WeatherUpdateService.cancelAllUpdate(getContext());
+ }
+
+ private void enableService() {
+ WeatherUpdateService.scheduleUpdatePeriodic(getContext());
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ mWeatherClient.removeObserver(this);
+ }
+
+ public void doLoadPreferences() {
+
+ final PreferenceScreen prefScreen = getPreferenceScreen();
+ mEnable = findPreference(LOCKSCREEN_WEATHER_SWITCH);
+ if (mEnable != null) {
+ mEnable.setOnPreferenceChangeListener(this);
+ }
+
+ mCustomLocation = findPreference(LOCKSCREEN_WEATHER_CUSTOM_LOCATION);
+
+ mProvider = findPreference(LOCKSCREEN_WEATHER_PROVIDER);
+ if (mProvider != null) {
+ mProvider.setOnPreferenceChangeListener(this);
+ }
+
+ mUnits = findPreference(LOCKSCREEN_WEATHER_UNITS);
+ if (mUnits != null) {
+ mUnits.setOnPreferenceChangeListener(this);
+ }
+
+ mUpdateInterval = findPreference(LOCKSCREEN_WEATHER_UPDATE_INTERVAL);
+ if (mUpdateInterval != null) {
+ mUpdateInterval.setOnPreferenceChangeListener(this);
+ }
+
+ if (mPrefs.getBoolean(LOCKSCREEN_WEATHER_SWITCH, false)
+ && !mPrefs.getBoolean(LOCKSCREEN_WEATHER_CUSTOM_LOCATION, false)) {
+ checkLocationEnabled();
+ }
+
+ mWeatherIconPack = findPreference(LOCKSCREEN_WEATHER_ICON_PACK);
+
+ if (mShowIconPack) {
+ String settingHeaderPackage = Config.getIconPack(getContext());
+ List entries = new ArrayList<>();
+ List values = new ArrayList<>();
+ List drawables = new ArrayList<>();
+ getAvailableWeatherIconPacks(entries, values, drawables);
+ mWeatherIconPack.setEntries(entries.toArray(new String[0]));
+ mWeatherIconPack.setEntryValues(values.toArray(new String[0]));
+ mWeatherIconPack.createDefaultAdapter(drawables.toArray(new Drawable[0]));
+ int valueIndex = mWeatherIconPack.findIndexOfValue(settingHeaderPackage);
+ if (valueIndex == -1) {
+ // no longer found
+ settingHeaderPackage = DEFAULT_WEATHER_ICON_PACKAGE;
+ //Config.setIconPack(getContext(), settingHeaderPackage);
+ valueIndex = mWeatherIconPack.findIndexOfValue(settingHeaderPackage);
+ }
+ mWeatherIconPack.setValueIndex(valueIndex >= 0 ? valueIndex : 0);
+ mWeatherIconPack.setSummary(mWeatherIconPack.getEntry());
+ mWeatherIconPack.setOnPreferenceChangeListener(this);
+ } else {
+ prefScreen.removePreference(mWeatherIconPack);
+ }
+ mUpdateStatus = findPreference(PREF_KEY_UPDATE_STATUS);
+ if (mUpdateStatus != null) {
+ mUpdateStatus.setOnPreferenceClickListener(preference -> {
+ forceRefreshWeatherSettings();
+ return true;
+ });
+ }
+
+ mOwmKey = findPreference(Config.PREF_KEY_OWM_KEY);
+ if (mOwmKey != null) {
+ mOwmKey.setOnPreferenceChangeListener(this);
+ }
+
+ mCustomLocation = findPreference(LOCKSCREEN_WEATHER_CUSTOM_LOCATION);
+ if (mCustomLocation != null) {
+ mCustomLocation.setOnPreferenceClickListener(preference -> {
+ forceRefreshWeatherSettings();
+ return true;
+ });
+ }
+
+ mCustomLocationActivity = findPreference(PREF_KEY_CUSTOM_LOCATION);
+ if (mCustomLocationActivity != null) {
+ mCustomLocationActivity.setOnPreferenceClickListener(preference -> {
+ mCustomLocationLauncher.launch(new Intent(getContext(), LocationBrowseActivity.class));
+ return true;
+ });
+ mCustomLocationActivity.setSummary(Config.getLocationName(getContext()));
+ }
+ }
+
+ private void getAvailableWeatherIconPacks(List entries, List values, List drawables) {
+ Intent i = new Intent();
+ PackageManager packageManager = getContext().getPackageManager();
+ i.setAction("org.omnirom.WeatherIconPack");
+ for (ResolveInfo r : packageManager.queryIntentActivities(i, 0)) {
+ String packageName = r.activityInfo.packageName;
+ if (packageName.equals(DEFAULT_WEATHER_ICON_PACKAGE)) {
+ values.add(0, r.activityInfo.name);
+ drawables.add(0, ResourcesCompat.getDrawable(getResources(), getResources().getIdentifier("google_30", "drawable", BuildConfig.APPLICATION_ID), getContext().getTheme()));
+ } else {
+ values.add(r.activityInfo.name);
+ String[] name = r.activityInfo.name.split("\\.");
+ Log.d("LockscreenWeather", "icon: " + name[name.length-1].toLowerCase() + "_30");
+ drawables.add(ResourcesCompat.getDrawable(getResources(), getResources().getIdentifier(name[name.length-1].toLowerCase() + "_30", "drawable", BuildConfig.APPLICATION_ID), getContext().getTheme()));
+ }
+ String label = r.activityInfo.loadLabel(packageManager).toString();
+ if (label == null) {
+ label = r.activityInfo.packageName;
+ }
+ if (packageName.equals(DEFAULT_WEATHER_ICON_PACKAGE)) {
+ entries.add(0, label);
+ } else {
+ entries.add(label);
+ }
+ }
+ i = new Intent(Intent.ACTION_MAIN);
+ i.addCategory(CHRONUS_ICON_PACK_INTENT);
+ for (ResolveInfo r : packageManager.queryIntentActivities(i, 0)) {
+ String packageName = r.activityInfo.packageName;
+ values.add(packageName + ".weather");
+ String label = r.activityInfo.loadLabel(packageManager).toString();
+ if (label == null) {
+ label = r.activityInfo.packageName;
+ }
+ entries.add(label);
+ }
+ }
+
+ @Override
+ public void weatherUpdated() {
+ queryAndUpdateWeather();
+ }
+
+ @Override
+ public void weatherError(int errorReason) {
+ String errorString = null;
+ if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) {
+ errorString = getResources().getString(R.string.omnijaws_service_disabled);
+ } else if (errorReason == OmniJawsClient.EXTRA_ERROR_LOCATION) {
+ errorString = getResources().getString(R.string.omnijaws_service_error_location);
+ } else if (errorReason == OmniJawsClient.EXTRA_ERROR_NETWORK) {
+ errorString = getResources().getString(R.string.omnijaws_service_error_network);
+ } else {
+ errorString = getResources().getString(R.string.omnijaws_service_error_long);
+ }
+ if (errorString != null) {
+ final String s = errorString;
+ getActivity().runOnUiThread(() -> {
+ if (mUpdateStatus != null) {
+ mUpdateStatus.setSummary(s);
+ }
+ });
+ }
+ }
+
+ private void queryAndUpdateWeather() {
+ mWeatherClient.queryWeather();
+ if (mWeatherClient.getWeatherInfo() != null) {
+ getActivity().runOnUiThread(() -> {
+ if (mUpdateStatus != null) {
+ mUpdateStatus.setSummary(mWeatherClient.getWeatherInfo().getLastUpdateTime());
+ }
+ });
+ }
+ }
+
+ ActivityResultLauncher requestPermissionLauncher =
+ registerForActivityResult(new ActivityResultContracts
+ .RequestMultiplePermissions(), result -> {
+ Boolean fineLocationGranted = result.getOrDefault(
+ Manifest.permission.ACCESS_FINE_LOCATION, false);
+ Boolean coarseLocationGranted = result.getOrDefault(
+ Manifest.permission.ACCESS_COARSE_LOCATION, false);
+ if ((fineLocationGranted != null && fineLocationGranted) ||
+ (coarseLocationGranted != null && coarseLocationGranted)) {
+ forceRefreshWeatherSettings();
+ }
+ }
+ );
+
+ private void forceRefreshWeatherSettings() {
+ WeatherUpdateService.scheduleUpdateNow(getContext());
+ }
+
+ @Override
+ public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
+ if (preference == mEnable) {
+ Config.setEnabled(getContext(), (Boolean) newValue);
+ if ((Boolean) newValue) {
+ enableService();
+ if (!mCustomLocation.isChecked()) {
+ checkLocationEnabledInitial();
+ } else {
+ forceRefreshWeatherSettings();
+ }
+ } else {
+ disableService();
+ }
+ return true;
+ } else if (preference == mProvider) {
+ forceRefreshWeatherSettings();
+ return true;
+ } else if (preference == mUnits) {
+ forceRefreshWeatherSettings();
+ return true;
+ } else if (preference == mUpdateInterval) {
+ forceRefreshWeatherSettings();
+ return true;
+ } else if (preference == mWeatherIconPack) {
+ forceRefreshWeatherSettings();
+ return true;
+ } else if (preference == mOwmKey) {
+ forceRefreshWeatherSettings();
+ return true;
+ }
+ return false;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/navbar/Gesture.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/navbar/Gesture.java
new file mode 100644
index 000000000..db8b0dc64
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/navbar/Gesture.java
@@ -0,0 +1,211 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.navbar;
+
+import android.animation.Animator;
+import android.annotation.SuppressLint;
+import android.os.Bundle;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+import androidx.annotation.NonNull;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.ListWithPopUpPreference;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+
+public class Gesture extends ControlledPreferenceFragmentCompat {
+
+ FrameLayout leftBackGestureIndicator, rightBackGestureIndicator;
+ FrameLayout leftSwipeGestureIndicator, rightSwipeGestureIndicator;
+ private ListWithPopUpPreference mOverrideBackLeft, mOverrideBackRight;
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.gesture_navigation_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.gesture_prefs;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+ @SuppressLint("RtlHardcoded")
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+
+ int[] backDrawables = new int[]{
+ R.drawable.ic_switch_app, // Switch App
+ R.drawable.ic_kill, // Kill App
+ R.drawable.ic_screenshot, // Screenshot
+ R.drawable.ic_quick_settings, // Quick Settings
+ R.drawable.ic_power_menu, // Power Menu
+ R.drawable.ic_notifications, // Notification Panel
+ R.drawable.ic_screen_off, // Volume Panel
+ };
+
+ mOverrideBackLeft = findPreference("gesture_override_holdback_left");
+ if (mOverrideBackLeft != null)
+ mOverrideBackLeft.setDrawables(backDrawables);
+
+ mOverrideBackRight = findPreference("gesture_override_holdback_right");
+ if (mOverrideBackRight != null)
+ mOverrideBackRight.setDrawables(backDrawables);
+
+
+ rightBackGestureIndicator = prepareBackGestureView(Gravity.RIGHT);
+ leftBackGestureIndicator = prepareBackGestureView(Gravity.LEFT);
+
+ rightSwipeGestureIndicator = prepareSwipeGestureView(Gravity.RIGHT);
+ leftSwipeGestureIndicator = prepareSwipeGestureView(Gravity.LEFT);
+ }
+
+ @Override
+ public void updateScreen(String key) {
+ super.updateScreen(key);
+ try {
+
+ mOverrideBackLeft.setTitle(
+ mPreferences.getString("gesture_override_holdback_mode", "0").equals("0") ?
+ R.string.gesture_override_back_hold_common : R.string.gesture_override_back_hold_left
+ );
+
+ int displayHeight = requireActivity().getWindowManager().getCurrentWindowMetrics().getBounds().height();
+ int displayWidth = requireActivity().getWindowManager().getCurrentWindowMetrics().getBounds().width();
+
+ float leftSwipeUpPercentage = mPreferences.getSliderFloat("gesture_left_height", 25);
+
+ float rightSwipeUpPercentage = mPreferences.getSliderFloat("gesture_right_height", 25);
+
+ int edgeWidth = Math.round(displayWidth * leftSwipeUpPercentage / 100f);
+ ViewGroup.LayoutParams lp = leftSwipeGestureIndicator.getLayoutParams();
+ lp.width = edgeWidth;
+ leftSwipeGestureIndicator.setLayoutParams(lp);
+
+ edgeWidth = Math.round(displayWidth * rightSwipeUpPercentage / 100f);
+ lp = rightSwipeGestureIndicator.getLayoutParams();
+ lp.width = edgeWidth;
+ rightSwipeGestureIndicator.setLayoutParams(lp);
+
+ setVisibility(rightSwipeGestureIndicator, false, 400);
+ setVisibility(leftSwipeGestureIndicator, false, 400);
+
+ setVisibility(rightBackGestureIndicator, PreferenceHelper.isVisible("gesture_right_height"), 400);
+ setVisibility(leftBackGestureIndicator, PreferenceHelper.isVisible("gesture_left_height"), 400);
+
+ int edgeHeight = Math.round(displayHeight * mPreferences.getSliderInt("gesture_right_height", 100) / 100f);
+ lp = rightBackGestureIndicator.getLayoutParams();
+ lp.height = edgeHeight;
+ rightBackGestureIndicator.setLayoutParams(lp);
+
+ edgeHeight = Math.round(displayHeight * mPreferences.getSliderInt("gesture_left_height", 100) / 100f);
+ lp = leftBackGestureIndicator.getLayoutParams();
+ lp.height = edgeHeight;
+ leftBackGestureIndicator.setLayoutParams(lp);
+
+ } catch (Exception ignored) {
+ }
+ }
+
+ private FrameLayout prepareSwipeGestureView(int gravity) {
+ int navigationBarHeight = 0;
+ @SuppressLint({"DiscouragedApi", "InternalInsetResource"})
+ int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
+ if (resourceId > 0) {
+ navigationBarHeight = requireContext().getResources().getDimensionPixelSize(resourceId);
+ }
+
+ FrameLayout result = new FrameLayout(requireContext());
+ FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(0, navigationBarHeight);
+ lp.gravity = gravity | Gravity.BOTTOM;
+ lp.bottomMargin = 0;
+ result.setLayoutParams(lp);
+
+ result.setBackgroundColor(requireContext().getColor(android.R.color.system_accent1_300));
+ result.setAlpha(.7f);
+ ((ViewGroup) requireActivity().getWindow().getDecorView().getRootView()).addView(result);
+ result.setVisibility(View.GONE);
+ return result;
+ }
+
+ private FrameLayout prepareBackGestureView(int gravity) {
+ int navigationBarHeight = 0;
+ @SuppressLint({"InternalInsetResource", "DiscouragedApi"})
+ int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
+ if (resourceId > 0) {
+ navigationBarHeight = requireContext().getResources().getDimensionPixelSize(resourceId);
+ }
+
+ FrameLayout result = new FrameLayout(requireContext());
+ FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(50, 0);
+ lp.gravity = gravity | Gravity.BOTTOM;
+ lp.bottomMargin = navigationBarHeight;
+ result.setLayoutParams(lp);
+
+ result.setBackgroundColor(requireContext().getColor(android.R.color.system_accent1_300));
+ result.setAlpha(.7f);
+ ((ViewGroup) requireActivity().getWindow().getDecorView().getRootView()).addView(result);
+ result.setVisibility(View.GONE);
+ return result;
+ }
+
+ @SuppressWarnings("SameParameterValue")
+ private void setVisibility(View v, boolean visible, long duration) {
+ if ((v.getVisibility() == View.VISIBLE) == visible) return;
+
+ float basicAlpha = v.getAlpha();
+ float destAlpha = (visible) ? 1f : 0f;
+
+ if (visible) v.setAlpha(0f);
+ v.setVisibility(View.VISIBLE);
+
+ v.animate().setDuration(duration).alpha(destAlpha).setListener(new Animator.AnimatorListener() {
+ @Override
+ public void onAnimationStart(@NonNull Animator animator) {
+ }
+
+ @Override
+ public void onAnimationEnd(@NonNull Animator animator) {
+ if (!visible) v.setVisibility(View.GONE);
+ v.setAlpha(basicAlpha);
+ }
+
+ @Override
+ public void onAnimationCancel(@NonNull Animator animator) {
+ }
+
+ @Override
+ public void onAnimationRepeat(@NonNull Animator animator) {
+ }
+ }).start();
+ }
+
+ @Override
+ public void onDestroy() {
+ ((ViewGroup) rightBackGestureIndicator.getParent()).removeView(rightBackGestureIndicator);
+ ((ViewGroup) leftBackGestureIndicator.getParent()).removeView(leftBackGestureIndicator);
+
+ ((ViewGroup) rightSwipeGestureIndicator.getParent()).removeView(rightSwipeGestureIndicator);
+ ((ViewGroup) leftSwipeGestureIndicator.getParent()).removeView(leftSwipeGestureIndicator);
+
+ super.onDestroy();
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeader.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeader.java
new file mode 100644
index 000000000..0d12275d2
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeader.java
@@ -0,0 +1,31 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.qsheader;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+
+public class QsHeader extends ControlledPreferenceFragmentCompat {
+ @Override
+ public String getTitle() {
+ return getString(R.string.qs_header_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.qs_header_prefs;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return false;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return null;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeaderClock.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeaderClock.java
new file mode 100644
index 000000000..0a1918e9e
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeaderClock.java
@@ -0,0 +1,142 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.qsheader;
+
+import static it.dhd.oxygencustomizer.utils.Constants.HEADER_CLOCK_FONT_DIR;
+import static it.dhd.oxygencustomizer.utils.Constants.HEADER_CLOCK_LAYOUT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_CUSTOM_ENABLED;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_CUSTOM_FONT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_CUSTOM_VALUE;
+import static it.dhd.oxygencustomizer.utils.FileUtil.getRealPath;
+import static it.dhd.oxygencustomizer.utils.FileUtil.launchFilePicker;
+import static it.dhd.oxygencustomizer.utils.FileUtil.moveToOCHiddenDir;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.Toast;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.preference.Preference;
+import androidx.recyclerview.widget.RecyclerView;
+
+import java.util.ArrayList;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.RecyclerPreference;
+import it.dhd.oxygencustomizer.ui.adapters.ClockPreviewAdapter;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.ui.models.ClockModel;
+import it.dhd.oxygencustomizer.utils.AppUtils;
+import it.dhd.oxygencustomizer.utils.CarouselLayoutManager;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class QsHeaderClock extends ControlledPreferenceFragmentCompat {
+
+ ActivityResultLauncher startActivityIntent = registerForActivityResult(
+ new ActivityResultContracts.StartActivityForResult(),
+ result -> {
+ if (result.getResultCode() == Activity.RESULT_OK) {
+ Intent data = result.getData();
+ String path = getRealPath(data);
+
+ if (path != null && moveToOCHiddenDir(path, HEADER_CLOCK_FONT_DIR)) {
+ mPreferences.edit().putBoolean(QS_HEADER_CLOCK_CUSTOM_FONT, false).apply();
+ mPreferences.edit().putBoolean(QS_HEADER_CLOCK_CUSTOM_FONT, true).apply();
+ Toast.makeText(getContext(), requireContext().getResources().getString(R.string.toast_applied), Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(getContext(), requireContext().getResources().getString(R.string.toast_rename_file), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.qs_header_clock);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.qs_header_clock_prefs;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+
+ Preference mClockFont = findPreference("qs_header_clock_font_custom");
+ if (mClockFont != null) {
+ mClockFont.setOnPreferenceClickListener(preference -> {
+ pickFile();
+ return true;
+ });
+ }
+
+ RecyclerPreference mQsClockStyle = findPreference("qs_header_clock_custom");
+ if (mQsClockStyle != null) {
+ mQsClockStyle.setLayoutManager(new CarouselLayoutManager(requireContext(), RecyclerView.HORIZONTAL, false));
+ mQsClockStyle.setAdapter(initHeaderClockStyles());
+ mQsClockStyle.setPreference(QS_HEADER_CLOCK_CUSTOM_VALUE, 0);
+ }
+
+
+ }
+
+ private void pickFile() {
+ if (!AppUtils.hasStoragePermission()) {
+ AppUtils.requestStoragePermission(requireContext());
+ } else {
+ launchFilePicker(startActivityIntent, "font/*");
+ }
+ }
+
+ @SuppressLint("DiscouragedApi")
+ private ClockPreviewAdapter initHeaderClockStyles() {
+ ArrayList header_clock = new ArrayList<>();
+
+ int maxIndex = 0;
+ while (requireContext()
+ .getResources()
+ .getIdentifier(
+ HEADER_CLOCK_LAYOUT + maxIndex,
+ "layout",
+ BuildConfig.APPLICATION_ID
+ ) != 0) {
+ maxIndex++;
+ }
+
+ for (int i = 0; i < maxIndex; i++) {
+ header_clock.add(new ClockModel(
+ i == 0 ?
+ "No Clock" :
+ "Clock Style " + i,
+ requireContext()
+ .getResources()
+ .getIdentifier(
+ HEADER_CLOCK_LAYOUT + i,
+ "layout",
+ BuildConfig.APPLICATION_ID
+ )
+ ));
+ }
+
+ return new ClockPreviewAdapter(requireContext(), header_clock, QS_HEADER_CLOCK_CUSTOM_ENABLED, QS_HEADER_CLOCK_CUSTOM_VALUE);
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeaderImage.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeaderImage.java
new file mode 100644
index 000000000..015eda249
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/qsheader/QsHeaderImage.java
@@ -0,0 +1,108 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.qsheader;
+
+import static it.dhd.oxygencustomizer.utils.Constants.HEADER_IMAGE_DIR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderImage.QS_HEADER_IMAGE_ENABLED;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderImage.QS_HEADER_IMAGE_VALUE;
+import static it.dhd.oxygencustomizer.utils.FileUtil.getRealPath;
+import static it.dhd.oxygencustomizer.utils.FileUtil.launchFilePicker;
+import static it.dhd.oxygencustomizer.utils.FileUtil.moveToOCHiddenDir;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.Toast;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.preference.Preference;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.ListWithPopUpPreference;
+import it.dhd.oxygencustomizer.customprefs.dialogadapter.ListPreferenceAdapter;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.AppUtils;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class QsHeaderImage extends ControlledPreferenceFragmentCompat {
+
+ public QsHeaderImage() {
+
+ }
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.qs_header_image_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.qs_header_image_prefs;
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+ ListWithPopUpPreference mImage = findPreference("qs_header_image");
+ List mValues = new ArrayList<>();
+ for(int i=0;i<24;i++) {
+ mValues.add("qs_header_image_" + i);
+ }
+ if (mImage != null) {
+ mImage.createDefaultAdapter();
+ mImage.setAdapterType(ListPreferenceAdapter.TYPE_QS_IMAGE);
+ mImage.setEntries(mValues.toArray(new CharSequence[0]));
+ mImage.setEntryValues(mValues.toArray(new CharSequence[0]));
+ }
+ Preference mQsImageFile = findPreference("qs_header_image_file");
+ if (mQsImageFile != null) {
+ mQsImageFile.setOnPreferenceClickListener(preference -> {
+ pickFile();
+ return true;
+ });
+ }
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+ ActivityResultLauncher startActivityIntent = registerForActivityResult(
+ new ActivityResultContracts.StartActivityForResult(),
+ result -> {
+ if (result.getResultCode() == Activity.RESULT_OK) {
+ Intent data = result.getData();
+ String path = getRealPath(data);
+
+ if (path != null && moveToOCHiddenDir(path, HEADER_IMAGE_DIR)) {
+ mPreferences.edit().putInt(QS_HEADER_IMAGE_VALUE, -1).apply();
+ Toast.makeText(getContext(), getResources().getString(R.string.toast_applied), Toast.LENGTH_SHORT).show();
+ mPreferences.edit().putBoolean(QS_HEADER_IMAGE_ENABLED, false).apply();
+ mPreferences.edit().putBoolean(QS_HEADER_IMAGE_ENABLED, true).apply();
+ } else {
+ Toast.makeText(getContext(), getResources().getString(R.string.toast_rename_file), Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+ private void pickFile() {
+ if (!AppUtils.hasStoragePermission()) {
+ AppUtils.requestStoragePermission(requireContext());
+ } else {
+ launchFilePicker(startActivityIntent, "image/*");
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettings.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettings.java
new file mode 100644
index 000000000..4341c8a54
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettings.java
@@ -0,0 +1,83 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.quicksettings;
+
+import android.annotation.SuppressLint;
+import android.os.Bundle;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.utils.PreferenceHelper;
+
+public class QuickSettings extends ControlledPreferenceFragmentCompat {
+
+ private FrameLayout pullDownIndicator;
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.quick_settings_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.quick_settings_mods;
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+ createPullDownIndicator();
+ }
+
+ @Override
+ public void onDestroy() {
+ ((ViewGroup) pullDownIndicator.getParent()).removeView(pullDownIndicator);
+ super.onDestroy();
+ }
+
+ @SuppressLint("RtlHardcoded")
+ @Override
+ public void updateScreen(String key) {
+ super.updateScreen(key);
+ try {
+ int displayWidth = requireActivity().getWindowManager().getCurrentWindowMetrics().getBounds().width();
+ pullDownIndicator.setVisibility(PreferenceHelper.isVisible("quick_pulldown_length") ? View.VISIBLE : View.GONE);
+ FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) pullDownIndicator.getLayoutParams();
+ lp.width = Math.round(mPreferences.getSliderInt( "quick_pulldown_length", 25) * displayWidth / 100f);
+ lp.gravity = Gravity.TOP | (Integer.parseInt(mPreferences.getString("quick_pulldown_side", "1")) == 1 ? Gravity.RIGHT : Gravity.LEFT);
+ pullDownIndicator.setLayoutParams(lp);
+ } catch (Exception ignored) {}
+ }
+
+ private void createPullDownIndicator() {
+ pullDownIndicator = new FrameLayout(requireContext());
+ FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(0, 25);
+ lp.gravity = Gravity.TOP;
+
+ pullDownIndicator.setLayoutParams(lp);
+ pullDownIndicator.setBackgroundColor(requireContext().getColor(android.R.color.system_accent1_200));
+ pullDownIndicator.setAlpha(.7f);
+ pullDownIndicator.setVisibility(View.VISIBLE);
+
+ ((ViewGroup) requireActivity().getWindow().getDecorView().getRootView()).addView(pullDownIndicator);
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettingsCustomization.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettingsCustomization.java
new file mode 100644
index 000000000..48619be29
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettingsCustomization.java
@@ -0,0 +1,34 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.quicksettings;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class QuickSettingsCustomization extends ControlledPreferenceFragmentCompat {
+
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.quick_settings_tiles_customization_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.quick_settings_tiles_customizations_prefs;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettingsTiles.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettingsTiles.java
new file mode 100644
index 000000000..8d47ef096
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/quicksettings/QuickSettingsTiles.java
@@ -0,0 +1,34 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.quicksettings;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class QuickSettingsTiles extends ControlledPreferenceFragmentCompat {
+
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.quick_settings_tiles_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.quick_settings_tiles_prefs;
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/sound/AdaptivePlaybackSoundSettings.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/sound/AdaptivePlaybackSoundSettings.java
new file mode 100644
index 000000000..1cc4ca10e
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/sound/AdaptivePlaybackSoundSettings.java
@@ -0,0 +1,166 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.sound;
+
+import android.os.Bundle;
+
+import androidx.preference.PreferenceCategory;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.SelectorWithWidgetPreference;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+
+public class AdaptivePlaybackSoundSettings extends ControlledPreferenceFragmentCompat implements SelectorWithWidgetPreference.OnClickListener {
+
+ private static final String KEY_NO_TIMEOUT = "adaptive_playback_timeout_none";
+ private static final String KEY_30_SECS = "adaptive_playback_timeout_30_secs";
+ private static final String KEY_1_MIN = "adaptive_playback_timeout_1_min";
+ private static final String KEY_2_MIN = "adaptive_playback_timeout_2_min";
+ private static final String KEY_5_MIN = "adaptive_playback_timeout_5_min";
+ private static final String KEY_10_MIN = "adaptive_playback_timeout_10_min";
+
+ static final int ADAPTIVE_PLAYBACK_TIMEOUT_NONE = 0;
+ static final int ADAPTIVE_PLAYBACK_TIMEOUT_30_SECS = 30000;
+ static final int ADAPTIVE_PLAYBACK_TIMEOUT_1_MIN = 60000;
+ static final int ADAPTIVE_PLAYBACK_TIMEOUT_2_MIN = 120000;
+ static final int ADAPTIVE_PLAYBACK_TIMEOUT_5_MIN = 300000;
+ static final int ADAPTIVE_PLAYBACK_TIMEOUT_10_MIN = 600000;
+
+ private boolean mAdaptivePlaybackEnabled;
+ private int mAdaptivePlaybackTimeout;
+
+ private PreferenceCategory mPreferenceCategory;
+ private SelectorWithWidgetPreference mTimeoutNonePref;
+ private SelectorWithWidgetPreference mTimeout30SecPref;
+ private SelectorWithWidgetPreference mTimeout1MinPref;
+ private SelectorWithWidgetPreference mTimeout2MinPref;
+ private SelectorWithWidgetPreference mTimeout5MinPref;
+ private SelectorWithWidgetPreference mTimeout10MinPref;
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.adaptive_playback_screen_title);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.adaptive_playback_sound_mods;
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+ mPreferenceCategory = findPreference("sound_adaptive_playback_category");
+ mTimeoutNonePref = makeRadioPreference(KEY_NO_TIMEOUT,
+ R.string.adaptive_playback_timeout_none);
+ mTimeout30SecPref = makeRadioPreference(KEY_30_SECS,
+ R.string.adaptive_playback_timeout_30_secs);
+ mTimeout1MinPref = makeRadioPreference(KEY_1_MIN, R.string.adaptive_playback_timeout_1_min);
+ mTimeout2MinPref = makeRadioPreference(KEY_2_MIN, R.string.adaptive_playback_timeout_2_min);
+ mTimeout5MinPref = makeRadioPreference(KEY_5_MIN, R.string.adaptive_playback_timeout_5_min);
+ mTimeout10MinPref = makeRadioPreference(KEY_10_MIN,
+ R.string.adaptive_playback_timeout_10_min);
+ }
+
+ private SelectorWithWidgetPreference makeRadioPreference(String key, int titleId) {
+ SelectorWithWidgetPreference pref = new SelectorWithWidgetPreference(mPreferenceCategory.getContext());
+ pref.setKey(key);
+ pref.setTitle(titleId);
+ pref.setOnClickListener(this);
+ mPreferenceCategory.addPreference(pref);
+ return pref;
+ }
+
+ /**
+ * Called when a preference has been clicked.
+ *
+ * @param emiter The clicked preference
+ */
+ @Override
+ public void onRadioButtonClicked(SelectorWithWidgetPreference emiter) {
+ int adaptivePlaybackTimeout = keyToSetting(emiter.getKey());
+ if (adaptivePlaybackTimeout != mPreferences.getInt("adaptive_playback_timeout", ADAPTIVE_PLAYBACK_TIMEOUT_30_SECS)) {
+ mPreferences.putInt("adaptive_playback_timeout", adaptivePlaybackTimeout);
+ mAdaptivePlaybackTimeout = adaptivePlaybackTimeout;
+ }
+ }
+
+ private static int keyToSetting(String key) {
+ return switch (key) {
+ case KEY_NO_TIMEOUT -> ADAPTIVE_PLAYBACK_TIMEOUT_NONE;
+ case KEY_1_MIN -> ADAPTIVE_PLAYBACK_TIMEOUT_1_MIN;
+ case KEY_2_MIN -> ADAPTIVE_PLAYBACK_TIMEOUT_2_MIN;
+ case KEY_5_MIN -> ADAPTIVE_PLAYBACK_TIMEOUT_5_MIN;
+ case KEY_10_MIN -> ADAPTIVE_PLAYBACK_TIMEOUT_10_MIN;
+ default -> ADAPTIVE_PLAYBACK_TIMEOUT_30_SECS;
+ };
+ }
+
+ @Override
+ public void updateScreen(String key) {
+ mAdaptivePlaybackEnabled = mPreferences.getBoolean("sound_adaptive_playback_main_switch", false);
+ mAdaptivePlaybackTimeout = mPreferences.getInt("adaptive_playback_timeout", ADAPTIVE_PLAYBACK_TIMEOUT_30_SECS);
+ final boolean isTimeoutNone = mAdaptivePlaybackEnabled
+ && mAdaptivePlaybackTimeout == ADAPTIVE_PLAYBACK_TIMEOUT_NONE;
+ final boolean isTimeout30Sec = mAdaptivePlaybackEnabled
+ && mAdaptivePlaybackTimeout == ADAPTIVE_PLAYBACK_TIMEOUT_30_SECS;
+ final boolean isTimeout1Min = mAdaptivePlaybackEnabled
+ && mAdaptivePlaybackTimeout == ADAPTIVE_PLAYBACK_TIMEOUT_1_MIN;
+ final boolean isTimeout2Min = mAdaptivePlaybackEnabled
+ && mAdaptivePlaybackTimeout == ADAPTIVE_PLAYBACK_TIMEOUT_2_MIN;
+ final boolean isTimeout5Min = mAdaptivePlaybackEnabled
+ && mAdaptivePlaybackTimeout == ADAPTIVE_PLAYBACK_TIMEOUT_5_MIN;
+ final boolean isTimeout10Min = mAdaptivePlaybackEnabled
+ && mAdaptivePlaybackTimeout == ADAPTIVE_PLAYBACK_TIMEOUT_10_MIN;
+ if (mTimeoutNonePref != null && mTimeoutNonePref.isChecked() != isTimeoutNone) {
+ mTimeoutNonePref.setChecked(isTimeoutNone);
+ }
+ if (mTimeout30SecPref != null && mTimeout30SecPref.isChecked() != isTimeout30Sec) {
+ mTimeout30SecPref.setChecked(isTimeout30Sec);
+ }
+ if (mTimeout1MinPref != null && mTimeout1MinPref.isChecked() != isTimeout1Min) {
+ mTimeout1MinPref.setChecked(isTimeout1Min);
+ }
+ if (mTimeout2MinPref != null && mTimeout2MinPref.isChecked() != isTimeout2Min) {
+ mTimeout2MinPref.setChecked(isTimeout2Min);
+ }
+ if (mTimeout5MinPref != null && mTimeout5MinPref.isChecked() != isTimeout5Min) {
+ mTimeout5MinPref.setChecked(isTimeout5Min);
+ }
+ if (mTimeout10MinPref != null && mTimeout10MinPref.isChecked() != isTimeout10Min) {
+ mTimeout10MinPref.setChecked(isTimeout10Min);
+ }
+
+ if (mAdaptivePlaybackEnabled) {
+ mPreferenceCategory.setEnabled(true);
+ mTimeoutNonePref.setEnabled(true);
+ mTimeout30SecPref.setEnabled(true);
+ mTimeout1MinPref.setEnabled(true);
+ mTimeout2MinPref.setEnabled(true);
+ mTimeout5MinPref.setEnabled(true);
+ mTimeout10MinPref.setEnabled(true);
+ } else {
+ mPreferenceCategory.setEnabled(false);
+ mTimeoutNonePref.setEnabled(false);
+ mTimeout30SecPref.setEnabled(false);
+ mTimeout1MinPref.setEnabled(false);
+ mTimeout2MinPref.setEnabled(false);
+ mTimeout5MinPref.setEnabled(false);
+ mTimeout10MinPref.setEnabled(false);
+ }
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return false;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return null;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/sound/PulseSettings.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/sound/PulseSettings.java
new file mode 100644
index 000000000..c638823be
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/fragments/mods/sound/PulseSettings.java
@@ -0,0 +1,58 @@
+package it.dhd.oxygencustomizer.ui.fragments.mods.sound;
+
+import android.os.Bundle;
+
+import androidx.preference.PreferenceCategory;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.base.ControlledPreferenceFragmentCompat;
+import it.dhd.oxygencustomizer.utils.Constants;
+
+public class PulseSettings extends ControlledPreferenceFragmentCompat {
+
+ private PreferenceCategory mFading, mSolid;
+
+ @Override
+ public String getTitle() {
+ return getString(R.string.pulse_settings);
+ }
+
+ @Override
+ public boolean backButtonEnabled() {
+ return true;
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return R.xml.pulse_mods;
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+ mFading = findPreference("pulse_fading_bars_category");
+ mSolid = findPreference("pulse_2");
+ }
+
+ @Override
+ public void updateScreen(String key) {
+ super.updateScreen(key);
+ if (mFading != null) {
+ mFading.setEnabled(Integer.parseInt(mPreferences.getString("pulse_render_style", "1")) == 0);
+ }
+ if (mSolid != null) {
+ mSolid.setEnabled(Integer.parseInt(mPreferences.getString("pulse_render_style", "1")) == 1);
+ }
+ }
+
+ @Override
+ public boolean hasMenu() {
+ return true;
+ }
+
+ @Override
+ public String[] getScopes() {
+ return new String[]{Constants.Packages.SYSTEM_UI};
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/models/ClockModel.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/models/ClockModel.java
new file mode 100644
index 000000000..df135ba7b
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/models/ClockModel.java
@@ -0,0 +1,54 @@
+package it.dhd.oxygencustomizer.ui.models;
+
+
+import android.view.ViewGroup;
+
+public class ClockModel {
+
+ private String title;
+ private int layout;
+ private boolean isSelected;
+ private ViewGroup clock;
+
+ public ClockModel(String title, int layout) {
+ this.title = title;
+ this.layout = layout;
+ this.isSelected = false;
+ }
+
+ public ClockModel(ViewGroup clock) {
+ this.clock = clock;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public int getLayout() {
+ return layout;
+ }
+
+ public void setLayout(int layout) {
+ this.layout = layout;
+ }
+
+ public boolean isSelected() {
+ return isSelected;
+ }
+
+ public void setSelected(boolean selected) {
+ isSelected = selected;
+ }
+
+ public ViewGroup getClock() {
+ return clock;
+ }
+
+ public void setClock(ViewGroup clock) {
+ this.clock = clock;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/models/CreditsModel.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/models/CreditsModel.java
new file mode 100644
index 000000000..ea8d963d3
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/models/CreditsModel.java
@@ -0,0 +1,71 @@
+package it.dhd.oxygencustomizer.ui.models;
+
+import android.graphics.drawable.Drawable;
+
+import it.dhd.oxygencustomizer.ui.adapters.CreditsAdapter;
+
+public class CreditsModel {
+
+ private final int viewType;
+ private final String title;
+ private final String summary;
+ private final String url;
+ private int icon;
+ private Drawable drawable;
+
+ public CreditsModel(String title) {
+ this.viewType = CreditsAdapter.VIEW_TYPE_HEADER;
+ this.title = title;
+ this.summary = null;
+ this.url = null;
+ }
+
+ public CreditsModel(int viewType, String title, String summary, String url, int icon) {
+ this.viewType = viewType;
+ this.title = title;
+ this.summary = summary;
+ this.url = url;
+ this.icon = icon;
+ }
+
+ public CreditsModel(int viewType, String title, String summary, String url, Drawable drawable) {
+ this.viewType = viewType;
+ this.title = title;
+ this.summary = summary;
+ this.url = url;
+ this.drawable = drawable;
+ }
+
+ /**
+ * View Type of Credit List
+ * Could be:
+ * 0 - Header {@link CreditsAdapter#VIEW_TYPE_HEADER}
+ * 1 - Item {@link CreditsAdapter#VIEW_TYPE_ITEM}
+ * {@link CreditsAdapter}
+ * @return viewType
+ */
+ public int getViewType() {
+ return viewType;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getSummary() {
+ return summary;
+ }
+
+ public int getIcon() {
+ return icon;
+ }
+
+ public Drawable getDrawable() {
+ return drawable;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/views/HeaderClockStyles.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/views/HeaderClockStyles.java
new file mode 100644
index 000000000..748e6eed5
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/views/HeaderClockStyles.java
@@ -0,0 +1,408 @@
+package it.dhd.oxygencustomizer.ui.views;
+
+
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.graphics.drawable.GradientDrawable;
+import android.text.InputFilter;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AnalogClock;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.TextClock;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.ThemeUtils;
+
+public class HeaderClockStyles {
+
+ static int sideMargin = 0;
+ static int topMargin = 0;
+ static boolean forceWhiteText = false;
+ static float textScaling = 1f;
+
+ @SuppressWarnings("deprecation")
+ public static ViewGroup initHeaderClockStyle(Context mContext, int style) {
+ LinearLayout container = new LinearLayout(mContext);
+ container.setGravity(Gravity.START | Gravity.CENTER);
+
+ switch (style) {
+ case 1 -> {
+ final TextClock clockHour1 = new TextClock(mContext);
+ clockHour1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockHour1.setFormat12Hour("hh");
+ clockHour1.setFormat24Hour("HH");
+ clockHour1.setTextColor(mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme()));
+ clockHour1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling);
+ clockHour1.setTypeface(clockHour1.getTypeface(), Typeface.BOLD);
+ LinearLayout.LayoutParams clockHourParams1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+ clockHourParams1.setMargins(0, 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, mContext.getResources().getDisplayMetrics()));
+ clockHour1.setLayoutParams(clockHourParams1);
+ final TextClock clockMinute1 = new TextClock(mContext);
+ clockMinute1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockMinute1.setFormat12Hour(":mm");
+ clockMinute1.setFormat24Hour(":mm");
+ clockMinute1.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ clockMinute1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling);
+ clockMinute1.setTypeface(clockMinute1.getTypeface(), Typeface.BOLD);
+ LinearLayout.LayoutParams clockMinuteParams1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+ clockMinuteParams1.setMargins(0, 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, mContext.getResources().getDisplayMetrics()));
+ clockMinute1.setLayoutParams(clockMinuteParams1);
+ final LinearLayout divider1 = new LinearLayout(mContext);
+ ViewGroup.MarginLayoutParams dividerParams1 = new ViewGroup.MarginLayoutParams((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling, mContext.getResources().getDisplayMetrics()));
+ dividerParams1.setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()));
+ divider1.setLayoutParams(dividerParams1);
+ GradientDrawable mDrawable1 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme()), mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme())});
+ mDrawable1.setCornerRadius(8);
+ divider1.setBackground(mDrawable1);
+ final TextClock clockDay1 = new TextClock(mContext);
+ clockDay1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockDay1.setFormat12Hour("EEEE");
+ clockDay1.setFormat24Hour("EEEE");
+ clockDay1.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ clockDay1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14 * textScaling);
+ clockDay1.setTypeface(clockDay1.getTypeface(), Typeface.BOLD);
+ final TextClock clockDate1 = new TextClock(mContext);
+ clockDate1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockDate1.setFormat12Hour("dd MMMM");
+ clockDate1.setFormat24Hour("dd MMMM");
+ clockDate1.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ clockDate1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14 * textScaling);
+ clockDate1.setTypeface(clockDate1.getTypeface(), Typeface.BOLD);
+ final LinearLayout dateContainer1 = new LinearLayout(mContext);
+ dateContainer1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
+ dateContainer1.setOrientation(LinearLayout.VERTICAL);
+ ((LinearLayout.LayoutParams) dateContainer1.getLayoutParams()).setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ dateContainer1.addView(clockDay1);
+ dateContainer1.addView(clockDate1);
+ final LinearLayout clockContainer1 = new LinearLayout(mContext);
+ clockContainer1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockContainer1.setGravity(Gravity.CENTER_VERTICAL);
+ clockContainer1.setOrientation(LinearLayout.HORIZONTAL);
+ ((LinearLayout.LayoutParams) clockContainer1.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ clockContainer1.addView(clockHour1);
+ clockContainer1.addView(clockMinute1);
+ clockContainer1.addView(divider1);
+ clockContainer1.addView(dateContainer1);
+ container = clockContainer1;
+ }
+ case 2 -> {
+ final TextClock clock2 = new TextClock(mContext);
+ clock2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clock2.setFormat12Hour("h:mm");
+ clock2.setFormat24Hour("H:mm");
+ clock2.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ clock2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling);
+ clock2.setTypeface(clock2.getTypeface(), Typeface.BOLD);
+ final TextClock clockOverlay2 = new TextClock(mContext);
+ clockOverlay2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockOverlay2.setFormat12Hour("h");
+ clockOverlay2.setFormat24Hour("H");
+ clockOverlay2.setTextColor(mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme()));
+ clockOverlay2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling);
+ clockOverlay2.setTypeface(clockOverlay2.getTypeface(), Typeface.BOLD);
+ clockOverlay2.setMaxLines(1);
+ int maxLength2 = 1;
+ InputFilter[] fArray2 = new InputFilter[1];
+ fArray2[0] = new InputFilter.LengthFilter(maxLength2);
+ clockOverlay2.setFilters(fArray2);
+ final FrameLayout clockContainer2 = new FrameLayout(mContext);
+ clockContainer2.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ ((FrameLayout.LayoutParams) clockContainer2.getLayoutParams()).setMargins(0, 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -8, mContext.getResources().getDisplayMetrics()));
+ clockContainer2.addView(clock2);
+ clockContainer2.addView(clockOverlay2);
+ final TextClock dayDate2 = new TextClock(mContext);
+ dayDate2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ dayDate2.setFormat12Hour("EEEE, MMM dd");
+ dayDate2.setFormat24Hour("EEEE, MMM dd");
+ dayDate2.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ dayDate2.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18 * textScaling);
+ dayDate2.setTypeface(clockOverlay2.getTypeface(), Typeface.BOLD);
+ final LinearLayout container2 = new LinearLayout(mContext);
+ container2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ container2.setGravity(Gravity.CENTER_VERTICAL);
+ container2.setOrientation(LinearLayout.VERTICAL);
+ ((LinearLayout.LayoutParams) container2.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ container2.addView(clockContainer2);
+ container2.addView(dayDate2);
+ container = container2;
+ }
+ case 3 -> {
+ final TextClock clock3 = new TextClock(mContext);
+ clock3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clock3.setFormat12Hour("hh:mm");
+ clock3.setFormat24Hour("HH:mm");
+ clock3.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ clock3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 28 * textScaling);
+ clock3.setTypeface(clock3.getTypeface(), Typeface.BOLD);
+ final TextClock clockOverlay3 = new TextClock(mContext);
+ clockOverlay3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockOverlay3.setFormat12Hour("hh:mm");
+ clockOverlay3.setFormat24Hour("HH:mm");
+ clockOverlay3.setTextColor(mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme()));
+ clockOverlay3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 28 * textScaling);
+ clockOverlay3.setTypeface(clockOverlay3.getTypeface(), Typeface.BOLD);
+ clockOverlay3.setAlpha(0.4f);
+ LinearLayout.LayoutParams clockOverlayParams3 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+ clockOverlayParams3.setMargins(6, 6, 0, 0);
+ clockOverlay3.setLayoutParams(clockOverlayParams3);
+ final FrameLayout clockContainer3 = new FrameLayout(mContext);
+ clockContainer3.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ ((FrameLayout.LayoutParams) clockContainer3.getLayoutParams()).setMargins(0, 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -12, mContext.getResources().getDisplayMetrics()));
+ clockContainer3.addView(clockOverlay3);
+ clockContainer3.addView(clock3);
+ final TextClock dayDate3 = new TextClock(mContext);
+ dayDate3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ dayDate3.setFormat12Hour("EEE, MMM dd");
+ dayDate3.setFormat24Hour("EEE, MMM dd");
+ dayDate3.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ dayDate3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18 * textScaling);
+ dayDate3.setTypeface(clockOverlay3.getTypeface(), Typeface.BOLD);
+ final TextClock dayDateOverlay3 = new TextClock(mContext);
+ dayDateOverlay3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ dayDateOverlay3.setFormat12Hour("EEE, MMM dd");
+ dayDateOverlay3.setFormat24Hour("EEE, MMM dd");
+ dayDateOverlay3.setTextColor(mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme()));
+ dayDateOverlay3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18 * textScaling);
+ dayDateOverlay3.setTypeface(dayDateOverlay3.getTypeface(), Typeface.BOLD);
+ dayDateOverlay3.setAlpha(0.4f);
+ LinearLayout.LayoutParams dayDateOverlayParams3 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+ dayDateOverlayParams3.setMargins(6, 6, 0, 0);
+ dayDateOverlay3.setLayoutParams(dayDateOverlayParams3);
+ final FrameLayout dayDateContainer3 = new FrameLayout(mContext);
+ dayDateContainer3.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ ((FrameLayout.LayoutParams) dayDateContainer3.getLayoutParams()).setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), 0, 0);
+ dayDateContainer3.addView(dayDateOverlay3);
+ dayDateContainer3.addView(dayDate3);
+ final LinearLayout container3 = new LinearLayout(mContext);
+ container3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ container3.setGravity(Gravity.BOTTOM);
+ container3.setOrientation(LinearLayout.VERTICAL);
+ ((LinearLayout.LayoutParams) container3.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ container3.addView(clockContainer3);
+ container3.addView(dayDateContainer3);
+ container = container3;
+ }
+ case 4 -> {
+ final AnalogClock analogClock4 = new AnalogClock(mContext);
+ analogClock4.setLayoutParams(new LinearLayout.LayoutParams((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 48 * textScaling, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 48 * textScaling, mContext.getResources().getDisplayMetrics())));
+ ((LinearLayout.LayoutParams) analogClock4.getLayoutParams()).gravity = Gravity.CENTER_HORIZONTAL;
+ final TextClock clockDay4 = new TextClock(mContext);
+ clockDay4.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockDay4.setFormat12Hour("EEEE");
+ clockDay4.setFormat24Hour("EEEE");
+ clockDay4.setTextColor(mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme()));
+ clockDay4.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16 * textScaling);
+ clockDay4.setTypeface(clockDay4.getTypeface(), Typeface.BOLD);
+ final TextClock clockDate4 = new TextClock(mContext);
+ clockDate4.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockDate4.setFormat12Hour("dd MMMM");
+ clockDate4.setFormat24Hour("dd MMMM");
+ clockDate4.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ clockDate4.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16 * textScaling);
+ clockDate4.setTypeface(clockDate4.getTypeface(), Typeface.BOLD);
+ final LinearLayout dateContainer4 = new LinearLayout(mContext);
+ dateContainer4.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER));
+ dateContainer4.setOrientation(LinearLayout.VERTICAL);
+ ((LinearLayout.LayoutParams) dateContainer4.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), 0);
+ dateContainer4.addView(clockDay4);
+ dateContainer4.addView(clockDate4);
+ final LinearLayout clockContainer4 = new LinearLayout(mContext);
+ clockContainer4.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockContainer4.setGravity(Gravity.CENTER_VERTICAL);
+ clockContainer4.setOrientation(LinearLayout.HORIZONTAL);
+ ((LinearLayout.LayoutParams) clockContainer4.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ clockContainer4.addView(analogClock4);
+ clockContainer4.addView(dateContainer4);
+ container = clockContainer4;
+ }
+ case 5 -> {
+ final TextClock time5 = new TextClock(mContext);
+ time5.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ time5.setFormat12Hour("hh:mm");
+ time5.setFormat24Hour("HH:mm");
+ time5.setTextColor(mContext.getResources().getColor(R.color.white, mContext.getTheme()));
+ time5.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14 * textScaling);
+ time5.setTypeface(time5.getTypeface(), Typeface.BOLD);
+ time5.setMaxLines(1);
+ final LinearLayout timeContainer5 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams timeLayoutParams5 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ timeLayoutParams5.gravity = Gravity.CENTER;
+ timeContainer5.setLayoutParams(timeLayoutParams5);
+ timeContainer5.setOrientation(LinearLayout.VERTICAL);
+ timeContainer5.setPadding((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()));
+ GradientDrawable timeDrawable5 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{mContext.getResources().getColor(R.color.black, mContext.getTheme()), mContext.getResources().getColor(R.color.black, mContext.getTheme())});
+ timeDrawable5.setCornerRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (28 - 2) * mContext.getResources().getDisplayMetrics().density, mContext.getResources().getDisplayMetrics()));
+ timeContainer5.setBackground(timeDrawable5);
+ timeContainer5.setGravity(Gravity.CENTER);
+ timeContainer5.addView(time5);
+ final TextClock date5 = new TextClock(mContext);
+ date5.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ date5.setFormat12Hour("EEE, MMM dd");
+ date5.setFormat24Hour("EEE, MMM dd");
+ date5.setTextColor(forceWhiteText ? mContext.getResources().getColor(R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ date5.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14 * textScaling);
+ date5.setTypeface(date5.getTypeface(), Typeface.BOLD);
+ ViewGroup.MarginLayoutParams dateParams5 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dateParams5.setMarginStart((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()));
+ dateParams5.setMarginEnd((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ date5.setLayoutParams(dateParams5);
+ date5.setMaxLines(1);
+ final LinearLayout container5 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams5 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ container5.setLayoutParams(layoutParams5);
+ container5.setGravity(Gravity.CENTER);
+ container5.setOrientation(LinearLayout.HORIZONTAL);
+ container5.setPadding((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, mContext.getResources().getDisplayMetrics()));
+ GradientDrawable mDrawable5 = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, new int[]{mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme()), mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme())});
+ ((LinearLayout.LayoutParams) container5.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ mDrawable5.setCornerRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 28 * mContext.getResources().getDisplayMetrics().density, mContext.getResources().getDisplayMetrics()));
+ container5.setBackground(mDrawable5);
+ container5.addView(timeContainer5);
+ container5.addView(date5);
+ container = container5;
+ }
+ case 6 -> {
+ final TextClock time6 = new TextClock(mContext);
+ time6.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ time6.setFormat12Hour("hh:mm");
+ time6.setFormat24Hour("HH:mm");
+ time6.setTextColor(ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ time6.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18 * textScaling);
+ time6.setTypeface(time6.getTypeface(), Typeface.BOLD);
+ time6.setMaxLines(1);
+ time6.setIncludeFontPadding(false);
+ int px2dp8 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics());
+ final View view61 = new View(mContext);
+ LinearLayout.LayoutParams viewLayoutParams61 = new LinearLayout.LayoutParams(px2dp8, px2dp8);
+ viewLayoutParams61.setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, mContext.getResources().getDisplayMetrics()), 0, px2dp8, 0);
+ view61.setLayoutParams(viewLayoutParams61);
+ GradientDrawable mDrawable61 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.parseColor("#3473B8"), Color.parseColor("#3473B8")});
+ mDrawable61.setCornerRadius(100);
+ view61.setBackground(mDrawable61);
+ final View view62 = new View(mContext);
+ LinearLayout.LayoutParams viewLayoutParams62 = new LinearLayout.LayoutParams(px2dp8, px2dp8);
+ viewLayoutParams62.setMargins(0, 0, px2dp8, 0);
+ view62.setLayoutParams(viewLayoutParams62);
+ GradientDrawable mDrawable62 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.parseColor("#38AA4A"), Color.parseColor("#38AA4A")});
+ mDrawable62.setCornerRadius(100);
+ view62.setBackground(mDrawable62);
+ final View view63 = new View(mContext);
+ LinearLayout.LayoutParams viewLayoutParams63 = new LinearLayout.LayoutParams(px2dp8, px2dp8);
+ viewLayoutParams63.setMargins(0, 0, px2dp8, 0);
+ view63.setLayoutParams(viewLayoutParams63);
+ GradientDrawable mDrawable63 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.parseColor("#FEBF32"), Color.parseColor("#FEBF32")});
+ mDrawable63.setCornerRadius(100);
+ view63.setBackground(mDrawable63);
+ final View view64 = new View(mContext);
+ LinearLayout.LayoutParams viewLayoutParams64 = new LinearLayout.LayoutParams(px2dp8, px2dp8);
+ viewLayoutParams64.setMargins(0, 0, 0, 0);
+ view64.setLayoutParams(viewLayoutParams64);
+ GradientDrawable mDrawable64 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.parseColor("#E33830"), Color.parseColor("#E33830")});
+ mDrawable64.setCornerRadius(100);
+ view64.setBackground(mDrawable64);
+ final LinearLayout container6 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams6 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams6.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
+ container6.setLayoutParams(layoutParams6);
+ container6.setOrientation(LinearLayout.HORIZONTAL);
+ container6.setPadding((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ ((LinearLayout.LayoutParams) container6.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ GradientDrawable mDrawable6 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.parseColor("#090909"), Color.parseColor("#090909")});
+ mDrawable6.setCornerRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (28 - 2) * mContext.getResources().getDisplayMetrics().density, mContext.getResources().getDisplayMetrics()));
+ mDrawable6.setAlpha(102);
+ container6.setBackground(mDrawable6);
+ container6.setGravity(Gravity.CENTER);
+ container6.addView(time6);
+ container6.addView(view61);
+ container6.addView(view62);
+ container6.addView(view63);
+ container6.addView(view64);
+ container = container6;
+ }
+ case 7 -> {
+ final TextClock time7 = new TextClock(mContext);
+ time7.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ time7.setFormat12Hour("hh.mm.");
+ time7.setFormat24Hour("HH.mm.");
+ time7.setTextColor(ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ time7.setTextSize(TypedValue.COMPLEX_UNIT_SP, 28 * textScaling);
+ time7.setTypeface(time7.getTypeface(), Typeface.BOLD);
+ time7.setMaxLines(1);
+ time7.setIncludeFontPadding(false);
+ time7.setLetterSpacing(0.1f);
+ ((LinearLayout.LayoutParams) time7.getLayoutParams()).setMargins(0, 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, mContext.getResources().getDisplayMetrics()));
+ final TextClock second7 = new TextClock(mContext);
+ second7.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ second7.setFormat12Hour("ss");
+ second7.setFormat24Hour("ss");
+ second7.setTextColor(ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ second7.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20 * textScaling);
+ second7.setTypeface(second7.getTypeface(), Typeface.NORMAL);
+ second7.setMaxLines(1);
+ second7.setIncludeFontPadding(false);
+ second7.setLetterSpacing(0.1f);
+ second7.setAlpha(0.4f);
+ second7.setGravity(Gravity.BOTTOM);
+ ((LinearLayout.LayoutParams) second7.getLayoutParams()).setMargins(0, 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 3, mContext.getResources().getDisplayMetrics()));
+ final LinearLayout container7 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams7 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams7.gravity = Gravity.START | Gravity.CENTER_VERTICAL;
+ container7.setLayoutParams(layoutParams7);
+ container7.setOrientation(LinearLayout.HORIZONTAL);
+ ((LinearLayout.LayoutParams) container7.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ container7.addView(time7);
+ container7.addView(second7);
+ container = container7;
+ }
+ case 8 -> {
+ final TextClock clock8 = new TextClock(mContext);
+ clock8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clock8.setFormat12Hour("h:mm");
+ clock8.setFormat24Hour("H:mm");
+ clock8.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ clock8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 44 * textScaling);
+ clock8.setTypeface(clock8.getTypeface(), Typeface.BOLD);
+ clock8.setMaxLines(1);
+ clock8.setIncludeFontPadding(false);
+ final TextClock clockOverlay8 = new TextClock(mContext);
+ clockOverlay8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockOverlay8.setFormat12Hour("h");
+ clockOverlay8.setFormat24Hour("H");
+ clockOverlay8.setTextColor(mContext.getResources().getColor(android.R.color.holo_blue_dark, mContext.getTheme()));
+ clockOverlay8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 44 * textScaling);
+ clockOverlay8.setTypeface(clockOverlay8.getTypeface(), Typeface.BOLD);
+ clockOverlay8.setMaxLines(1);
+ clockOverlay8.setIncludeFontPadding(false);
+ final FrameLayout clockContainer8 = new FrameLayout(mContext);
+ clockContainer8.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockContainer8.addView(clock8);
+ clockContainer8.addView(clockOverlay8);
+ final TextClock dayDate8 = new TextClock(mContext);
+ dayDate8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ dayDate8.setFormat12Hour("EEE d MMM");
+ dayDate8.setFormat24Hour("EEE d MMM");
+ dayDate8.setLetterSpacing(0.2f);
+ dayDate8.setAllCaps(true);
+ dayDate8.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : ThemeUtils.getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ dayDate8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14 * textScaling);
+ dayDate8.setTypeface(clockOverlay8.getTypeface(), Typeface.NORMAL);
+ dayDate8.setIncludeFontPadding(false);
+ ((LinearLayout.LayoutParams) dayDate8.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()));
+ final LinearLayout container8 = new LinearLayout(mContext);
+ container8.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ container8.setGravity(Gravity.START | Gravity.BOTTOM);
+ container8.setOrientation(LinearLayout.HORIZONTAL);
+ ((LinearLayout.LayoutParams) container8.getLayoutParams()).setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, sideMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()));
+ container8.addView(clockContainer8);
+ container8.addView(dayDate8);
+ container = container8;
+ }
+ }
+ return container;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/views/LockscreenClockStyles.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/views/LockscreenClockStyles.java
new file mode 100644
index 000000000..55b256b60
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/views/LockscreenClockStyles.java
@@ -0,0 +1,1290 @@
+package it.dhd.oxygencustomizer.ui.views;
+
+
+import static it.dhd.oxygencustomizer.utils.Constants.BATTERY_PROGRESSBAR;
+import static it.dhd.oxygencustomizer.utils.Constants.BATTERY_PROGRESSBAR_VALUE;
+import static it.dhd.oxygencustomizer.utils.Constants.MEDIA_PROGRESSBAR;
+import static it.dhd.oxygencustomizer.utils.Constants.MEDIA_PROGRESSBAR_VALUE;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.graphics.drawable.GradientDrawable;
+import android.text.InputFilter;
+import android.text.TextUtils;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AnalogClock;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextClock;
+import android.widget.TextView;
+
+import androidx.annotation.RawRes;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.core.widget.TextViewCompat;
+
+import com.airbnb.lottie.LottieAnimationView;
+import com.airbnb.lottie.LottieDrawable;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.ThemeUtils;
+
+public class LockscreenClockStyles {
+
+ static Typeface typeface = null;
+ static int topMargin = 0;
+ static int bottomMargin = 0;
+ static int lineHeight = 4;
+ static float textScaling = 0.6f;
+ static boolean forceWhiteText = false;
+ static boolean customColorEnabled = false;
+ static int customColorCode = Color.WHITE;
+
+ @SuppressLint("SetTextI18n")
+ @SuppressWarnings("deprecation")
+ public static ViewGroup initLockscreenClockStyle(Context mContext, int style) {
+ LinearLayout container = new LinearLayout(mContext);
+ container.setGravity(Gravity.START | Gravity.CENTER);
+ customColorCode = ResourcesCompat.getColor(mContext.getResources(), R.color.white, mContext.getTheme());
+
+ switch (style) {
+ case 0 -> {
+ final TextView textView0 = new TextView(mContext);
+ textView0.setText("NONE");
+ textView0.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.white, mContext.getTheme()));
+ textView0.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 80 * textScaling);
+ textView0.setLetterSpacing(0.2f);
+ textView0.setTypeface(typeface != null ? typeface : textView0.getTypeface(), Typeface.BOLD);
+ textView0.setGravity(Gravity.CENTER);
+ final LinearLayout blank0 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams blankParams0 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER);
+ blankParams0.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomMargin, mContext.getResources().getDisplayMetrics()));
+ blank0.setLayoutParams(blankParams0);
+ blank0.setOrientation(LinearLayout.VERTICAL);
+ blank0.setGravity(Gravity.CENTER);
+ blank0.addView(textView0);
+ container = blank0;
+ }
+ case 1 -> {
+ final TextClock date1 = new TextClock(mContext);
+ date1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ date1.setFormat12Hour("EEEE d MMMM");
+ date1.setFormat24Hour("EEEE d MMMM");
+ date1.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.material_dynamic_primary60, mContext.getTheme()));
+ date1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 22 * textScaling);
+ date1.setTypeface(typeface != null ? typeface : date1.getTypeface(), Typeface.BOLD);
+ ViewGroup.MarginLayoutParams dateParams1 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dateParams1.setMargins(0, 0, 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -16, mContext.getResources().getDisplayMetrics()));
+ date1.setLayoutParams(dateParams1);
+ final TextClock clock1 = new TextClock(mContext);
+ clock1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clock1.setFormat12Hour("hh:mm");
+ clock1.setFormat24Hour("HH:mm");
+ clock1.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.material_dynamic_primary60, mContext.getTheme()));
+ clock1.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 100 * textScaling);
+ clock1.setTypeface(typeface != null ? typeface : clock1.getTypeface(), Typeface.BOLD);
+ ViewGroup.MarginLayoutParams clockParams1 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ clockParams1.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -4 + lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ clock1.setLayoutParams(clockParams1);
+ final LinearLayout clockContainer1 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams1.gravity = Gravity.CENTER_HORIZONTAL;
+ layoutParams1.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomMargin, mContext.getResources().getDisplayMetrics()));
+ clockContainer1.setLayoutParams(layoutParams1);
+ clockContainer1.setGravity(Gravity.CENTER);
+ clockContainer1.setOrientation(LinearLayout.VERTICAL);
+ clockContainer1.addView(date1);
+ clockContainer1.addView(clock1);
+ container = clockContainer1;
+ }
+ case 2 -> {
+ Typeface futuristicTypeface = ResourcesCompat.getFont(mContext, R.font.futurist_fixed_width_bold);
+ //LayoutInflater.from(mContext).inflate(R.layout.digital_clock_10, container, true);
+ int titleSize = 18;
+ int timeSize = 35;
+ final TextView timeis101 = new TextView(mContext);
+ timeis101.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ timeis101.setText("Time is");
+ timeis101.setTextSize(TypedValue.COMPLEX_UNIT_DIP, titleSize * textScaling);
+ timeis101.setTypeface(futuristicTypeface);
+ final TextClock time101 = new TextClock(mContext);
+ ViewGroup.MarginLayoutParams timeParams101 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ timeParams101.setMargins(
+ 0,
+ (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()),
+ 0,
+ 0);
+ time101.setLayoutParams(timeParams101);
+ time101.setFormat12Hour("hh a:mm");
+ time101.setFormat24Hour("HH:mm");
+ time101.setTypeface(futuristicTypeface, Typeface.BOLD);
+ time101.setTextSize(TypedValue.COMPLEX_UNIT_DIP, timeSize * textScaling);
+ final LinearLayout divider1 = new LinearLayout(mContext);
+ ViewGroup.MarginLayoutParams dividerParams1 = new ViewGroup.MarginLayoutParams(
+ (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 90 * textScaling, mContext.getResources().getDisplayMetrics()));
+ dividerParams1.setMargins(
+ (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()),
+ 0,
+ (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()),
+ 0);
+ divider1.setLayoutParams(dividerParams1);
+ GradientDrawable mDrawable1 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
+ new int[]{
+ Color.parseColor("#FFA2ECBB"),
+ Color.parseColor("#FFA2ECBB")});
+ divider1.setBackground(mDrawable1);
+ final LinearLayout firstLineSep101 = new LinearLayout(mContext);
+ firstLineSep101.setLayoutParams(new LinearLayout.LayoutParams(dpToPx(20, mContext), ViewGroup.LayoutParams.WRAP_CONTENT));
+
+ final LinearLayout firstLineVertical = new LinearLayout(mContext);
+ firstLineVertical.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ firstLineVertical.setOrientation(LinearLayout.VERTICAL);
+ firstLineVertical.addView(timeis101);
+ firstLineVertical.addView(time101);
+ final LinearLayout firstLine = new LinearLayout(mContext);
+ firstLine.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ firstLine.setOrientation(LinearLayout.HORIZONTAL);
+ firstLine.addView(divider1);
+ firstLine.addView(firstLineVertical);
+
+ final TextView date101 = new TextView(mContext);
+ date101.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ date101.setText("Calendar");
+ date101.setTypeface(futuristicTypeface);
+ date101.setTextSize(TypedValue.COMPLEX_UNIT_DIP, titleSize * textScaling);
+ final TextClock date102 = new TextClock(mContext);
+ ViewGroup.MarginLayoutParams dateParams102 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dateParams102.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 6, mContext.getResources().getDisplayMetrics()), 0, 0);
+ date102.setLayoutParams(timeParams101);
+ date102.setFormat12Hour("MMMM dd");
+ date102.setFormat24Hour("MMMM dd");
+ date102.setAllCaps(true);
+ date102.setTextSize(TypedValue.COMPLEX_UNIT_DIP, timeSize * textScaling);
+ date102.setTypeface(futuristicTypeface, Typeface.BOLD);
+ final LinearLayout divider2 = new LinearLayout(mContext);
+ ViewGroup.MarginLayoutParams dividerParams2 = new ViewGroup.MarginLayoutParams((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80 * textScaling, mContext.getResources().getDisplayMetrics()));
+ dividerParams2.setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()));
+ divider2.setLayoutParams(dividerParams1);
+ GradientDrawable mDrawable2 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
+ new int[]{
+ Color.parseColor("#FF89D8F6"),
+ Color.parseColor("#FF89D8F6")});
+ divider2.setBackground(mDrawable2);
+
+ final LinearLayout secondLineVertical = new LinearLayout(mContext);
+ secondLineVertical.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ secondLineVertical.setOrientation(LinearLayout.VERTICAL);
+ secondLineVertical.addView(date101);
+ secondLineVertical.addView(date102);
+ final LinearLayout secondLine = new LinearLayout(mContext);
+ secondLine.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ secondLine.setOrientation(LinearLayout.HORIZONTAL);
+ secondLine.addView(divider2);
+ secondLine.addView(secondLineVertical);
+
+ final TextView date103 = new TextView(mContext);
+ date103.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ date103.setText("Today is");
+ date103.setTypeface(futuristicTypeface);
+ date103.setTextSize(TypedValue.COMPLEX_UNIT_DIP, titleSize * textScaling);
+ final TextClock date104 = new TextClock(mContext);
+ ViewGroup.MarginLayoutParams dateParams104 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dateParams104.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, mContext.getResources().getDisplayMetrics()), 0, 0);
+ date104.setLayoutParams(timeParams101);
+ date104.setFormat12Hour("EEEE");
+ date104.setFormat24Hour("EEEE");
+ date104.setAllCaps(true);
+ date104.setTextSize(TypedValue.COMPLEX_UNIT_DIP, timeSize * textScaling);
+ date104.setTypeface(futuristicTypeface, Typeface.BOLD);
+ final LinearLayout divider3 = new LinearLayout(mContext);
+ ViewGroup.MarginLayoutParams dividerParams3 = new ViewGroup.MarginLayoutParams((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 80 * textScaling, mContext.getResources().getDisplayMetrics()));
+ dividerParams3.setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 8, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()));
+ divider3.setLayoutParams(dividerParams1);
+ GradientDrawable mDrawable3 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM,
+ new int[]{
+ Color.parseColor("#FFF68989"),
+ Color.parseColor("#FFF68989")});
+ divider3.setBackground(mDrawable3);
+
+ final LinearLayout thirdLineVertical = new LinearLayout(mContext);
+ thirdLineVertical.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ thirdLineVertical.setOrientation(LinearLayout.VERTICAL);
+ thirdLineVertical.addView(date103);
+ thirdLineVertical.addView(date104);
+ final LinearLayout thirdLine = new LinearLayout(mContext);
+ thirdLine.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ thirdLine.setOrientation(LinearLayout.HORIZONTAL);
+ thirdLine.addView(divider3);
+ thirdLine.addView(thirdLineVertical);
+
+ final LinearLayout clockContainer1 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams1.gravity = Gravity.CENTER_HORIZONTAL;
+ layoutParams1.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomMargin, mContext.getResources().getDisplayMetrics()));
+ clockContainer1.setLayoutParams(layoutParams1);
+ clockContainer1.setGravity(Gravity.START);
+ clockContainer1.setOrientation(LinearLayout.VERTICAL);
+ clockContainer1.addView(firstLine);
+ clockContainer1.addView(secondLine);
+ clockContainer1.addView(thirdLine);
+ container = clockContainer1;
+ }
+ case 3 -> {
+ final TextClock date3 = new TextClock(mContext);
+ date3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ date3.setFormat12Hour("EEE, MMM dd");
+ date3.setFormat24Hour("EEE, MMM dd");
+ date3.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.material_dynamic_primary60, mContext.getTheme()));
+ date3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24 * textScaling);
+ date3.setTypeface(typeface != null ? typeface : date3.getTypeface(), Typeface.BOLD);
+ final TextClock clockHour3 = new TextClock(mContext);
+ clockHour3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockHour3.setFormat12Hour("hh");
+ clockHour3.setFormat24Hour("HH");
+ clockHour3.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.material_dynamic_primary60, mContext.getTheme()));
+ clockHour3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 160 * textScaling);
+ clockHour3.setTypeface(typeface != null ? typeface : clockHour3.getTypeface(), Typeface.BOLD);
+ ViewGroup.MarginLayoutParams clockHourParams3 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ clockHourParams3.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -30 + lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ clockHour3.setLayoutParams(clockHourParams3);
+ final TextClock clockMinute3 = new TextClock(mContext);
+ clockMinute3.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ clockMinute3.setFormat12Hour("mm");
+ clockMinute3.setFormat24Hour("mm");
+ clockMinute3.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.material_dynamic_primary60, mContext.getTheme()));
+ clockMinute3.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 160 * textScaling);
+ clockMinute3.setTypeface(typeface != null ? typeface : clockMinute3.getTypeface(), Typeface.BOLD);
+ ViewGroup.MarginLayoutParams clockMinuteParams3 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ clockMinuteParams3.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -54 + lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ clockMinute3.setLayoutParams(clockMinuteParams3);
+ final LinearLayout clockContainer3 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams3 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams3.gravity = Gravity.CENTER_HORIZONTAL;
+ layoutParams3.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomMargin, mContext.getResources().getDisplayMetrics()));
+ clockContainer3.setLayoutParams(layoutParams3);
+ clockContainer3.setGravity(Gravity.CENTER_HORIZONTAL);
+ clockContainer3.setOrientation(LinearLayout.VERTICAL);
+ clockContainer3.addView(date3);
+ clockContainer3.addView(clockHour3);
+ clockContainer3.addView(clockMinute3);
+ container = clockContainer3;
+ }
+ case 4 -> {
+ final AnalogClock analogClock4 = new AnalogClock(mContext);
+ analogClock4.setLayoutParams(new LinearLayout.LayoutParams((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 180 * textScaling, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 180 * textScaling, mContext.getResources().getDisplayMetrics())));
+ ((LinearLayout.LayoutParams) analogClock4.getLayoutParams()).gravity = Gravity.CENTER_HORIZONTAL;
+ final TextClock day4 = new TextClock(mContext);
+ day4.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ day4.setFormat12Hour("EEE dd MMM");
+ day4.setFormat24Hour("EEE dd MMM");
+ day4.setTextColor(mContext.getResources().getColor(android.R.color.system_neutral1_200, mContext.getTheme()));
+ day4.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 28 * textScaling);
+ day4.setTypeface(typeface != null ? typeface : day4.getTypeface(), Typeface.BOLD);
+ ViewGroup.MarginLayoutParams dayParams4 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dayParams4.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 6 + lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ day4.setLayoutParams(dayParams4);
+ final LinearLayout clockContainer4 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams4 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams4.gravity = Gravity.CENTER_HORIZONTAL;
+ layoutParams4.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomMargin, mContext.getResources().getDisplayMetrics()));
+ clockContainer4.setLayoutParams(layoutParams4);
+ clockContainer4.setGravity(Gravity.CENTER_HORIZONTAL);
+ clockContainer4.setOrientation(LinearLayout.VERTICAL);
+ clockContainer4.addView(analogClock4);
+ clockContainer4.addView(day4);
+ container = clockContainer4;
+ }
+ case 5 -> {
+ final TextClock hour5 = new TextClock(mContext);
+ hour5.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ hour5.setFormat12Hour("hh");
+ hour5.setFormat24Hour("HH");
+ hour5.setTextColor(mContext.getResources().getColor(R.color.white, mContext.getTheme()));
+ hour5.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling);
+ hour5.setTypeface(typeface != null ? typeface : hour5.getTypeface(), Typeface.BOLD);
+ final TextClock minute5 = new TextClock(mContext);
+ minute5.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ minute5.setFormat12Hour("mm");
+ minute5.setFormat24Hour("mm");
+ minute5.setTextColor(mContext.getResources().getColor(R.color.white, mContext.getTheme()));
+ minute5.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling);
+ minute5.setTypeface(typeface != null ? typeface : minute5.getTypeface(), Typeface.BOLD);
+ ViewGroup.MarginLayoutParams minuteParams5 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ minuteParams5.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4 + lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ minute5.setLayoutParams(minuteParams5);
+ final LinearLayout time5 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams timeLayoutParams5 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT);
+ timeLayoutParams5.gravity = Gravity.CENTER;
+ time5.setLayoutParams(timeLayoutParams5);
+ time5.setOrientation(LinearLayout.VERTICAL);
+ time5.setPadding((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()));
+ GradientDrawable timeDrawable5 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{mContext.getResources().getColor(R.color.black, mContext.getTheme()), mContext.getResources().getColor(R.color.black, mContext.getTheme())});
+ timeDrawable5.setCornerRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()));
+ time5.setBackground(timeDrawable5);
+ time5.setGravity(Gravity.CENTER);
+ time5.addView(hour5);
+ time5.addView(minute5);
+ final TextClock day5 = new TextClock(mContext);
+ day5.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ day5.setFormat12Hour("EEE");
+ day5.setFormat24Hour("EEE");
+ day5.setAllCaps(true);
+ day5.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.white, mContext.getTheme()));
+ day5.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 28 * textScaling);
+ day5.setTypeface(typeface != null ? typeface : day5.getTypeface(), Typeface.BOLD);
+ day5.setLetterSpacing(0.2f);
+ final TextClock date5 = new TextClock(mContext);
+ date5.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ date5.setFormat12Hour("dd");
+ date5.setFormat24Hour("dd");
+ date5.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.white, mContext.getTheme()));
+ date5.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 28 * textScaling);
+ date5.setTypeface(typeface != null ? typeface : date5.getTypeface(), Typeface.BOLD);
+ date5.setLetterSpacing(0.2f);
+ ViewGroup.MarginLayoutParams dateParams5 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dateParams5.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -2 + lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ date5.setLayoutParams(dateParams5);
+ final TextClock month5 = new TextClock(mContext);
+ month5.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ month5.setFormat12Hour("MMM");
+ month5.setFormat24Hour("MMM");
+ month5.setAllCaps(true);
+ month5.setTextColor(mContext.getResources().getColor(forceWhiteText ? R.color.white : R.color.white, mContext.getTheme()));
+ month5.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 28 * textScaling);
+ month5.setTypeface(typeface != null ? typeface : month5.getTypeface(), Typeface.BOLD);
+ month5.setLetterSpacing(0.2f);
+ ViewGroup.MarginLayoutParams monthParams5 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ monthParams5.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -2 + lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ month5.setLayoutParams(monthParams5);
+ final LinearLayout right5 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams rightLayoutParams5 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT);
+ rightLayoutParams5.gravity = Gravity.CENTER;
+ right5.setLayoutParams(rightLayoutParams5);
+ right5.setOrientation(LinearLayout.VERTICAL);
+ right5.setPadding((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, mContext.getResources().getDisplayMetrics()));
+ right5.setGravity(Gravity.CENTER);
+ right5.addView(day5);
+ right5.addView(date5);
+ right5.addView(month5);
+ final LinearLayout container5 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams5 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams5.gravity = Gravity.CENTER_HORIZONTAL;
+ layoutParams5.setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomMargin, mContext.getResources().getDisplayMetrics()));
+ container5.setLayoutParams(layoutParams5);
+ container5.setOrientation(LinearLayout.HORIZONTAL);
+ container5.setPadding((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12, mContext.getResources().getDisplayMetrics()));
+ GradientDrawable mDrawable5 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme()), mContext.getResources().getColor(R.color.material_dynamic_primary60, mContext.getTheme())});
+ mDrawable5.setCornerRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 28, mContext.getResources().getDisplayMetrics()));
+ container5.setBackground(mDrawable5);
+ container5.addView(time5);
+ container5.addView(right5);
+ container = container5;
+ }
+ case 6 -> {
+ int margin6 = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 14 * textScaling, mContext.getResources().getDisplayMetrics());
+ final TextClock day6 = new TextClock(mContext);
+ day6.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ day6.setFormat12Hour("EEE");
+ day6.setFormat24Hour("EEE");
+ day6.setAllCaps(true);
+ day6.setTextColor(mContext.getResources().getColor(android.R.color.white, mContext.getTheme()));
+ day6.setTextSize(TypedValue.COMPLEX_UNIT_SP, 42 * textScaling);
+ day6.setTypeface(typeface != null ? typeface : day6.getTypeface(), Typeface.NORMAL);
+ day6.setIncludeFontPadding(false);
+ int maxLength6 = 2;
+ InputFilter[] fArray6 = new InputFilter[1];
+ fArray6[0] = new InputFilter.LengthFilter(maxLength6);
+ day6.setFilters(fArray6);
+ final TextView dayText6 = new TextView(mContext);
+ dayText6.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ dayText6.setText("DAY");
+ dayText6.setAllCaps(true);
+ dayText6.setTextColor(mContext.getResources().getColor(android.R.color.white, mContext.getTheme()));
+ dayText6.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16 * textScaling);
+ dayText6.setTypeface(typeface != null ? typeface : dayText6.getTypeface(), Typeface.NORMAL);
+ dayText6.setIncludeFontPadding(false);
+ dayText6.setAlpha(0.4f);
+ ViewGroup.MarginLayoutParams dayTextParams6 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dayTextParams6.setMargins(0, 12 + topMargin, 0, 0);
+ dayText6.setLayoutParams(dayTextParams6);
+ final LinearLayout dayContainer6 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams dayLayoutParams6 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ dayLayoutParams6.gravity = Gravity.CENTER;
+ dayLayoutParams6.setMargins(margin6, margin6, margin6, margin6);
+ dayContainer6.setLayoutParams(dayLayoutParams6);
+ dayContainer6.setGravity(Gravity.CENTER);
+ dayContainer6.setOrientation(LinearLayout.VERTICAL);
+ dayContainer6.addView(day6);
+ dayContainer6.addView(dayText6);
+ final TextClock hour6 = new TextClock(mContext);
+ hour6.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ hour6.setFormat12Hour("hh");
+ hour6.setFormat24Hour("HH");
+ hour6.setAllCaps(true);
+ hour6.setTextColor(mContext.getResources().getColor(android.R.color.white, mContext.getTheme()));
+ hour6.setTextSize(TypedValue.COMPLEX_UNIT_SP, 42 * textScaling);
+ hour6.setTypeface(typeface != null ? typeface : hour6.getTypeface(), Typeface.NORMAL);
+ hour6.setIncludeFontPadding(false);
+ final TextView hourText6 = new TextView(mContext);
+ hourText6.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ hourText6.setText("HOURS");
+ hourText6.setAllCaps(true);
+ hourText6.setTextColor(mContext.getResources().getColor(android.R.color.white, mContext.getTheme()));
+ hourText6.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16 * textScaling);
+ hourText6.setTypeface(typeface != null ? typeface : hourText6.getTypeface(), Typeface.NORMAL);
+ hourText6.setIncludeFontPadding(false);
+ hourText6.setAlpha(0.4f);
+ ViewGroup.MarginLayoutParams hourTextParams6 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ hourTextParams6.setMargins(0, 12 + topMargin, 0, 0);
+ hourText6.setLayoutParams(hourTextParams6);
+ final LinearLayout hourContainer6 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams hourLayoutParams6 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ hourLayoutParams6.gravity = Gravity.CENTER;
+ hourLayoutParams6.setMargins(margin6, margin6, margin6, margin6);
+ hourContainer6.setLayoutParams(hourLayoutParams6);
+ hourContainer6.setGravity(Gravity.CENTER);
+ hourContainer6.setOrientation(LinearLayout.VERTICAL);
+ hourContainer6.addView(hour6);
+ hourContainer6.addView(hourText6);
+ final TextClock minute6 = new TextClock(mContext);
+ minute6.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ minute6.setFormat12Hour("mm");
+ minute6.setFormat24Hour("mm");
+ minute6.setAllCaps(true);
+ minute6.setTextColor(mContext.getResources().getColor(android.R.color.white, mContext.getTheme()));
+ minute6.setTextSize(TypedValue.COMPLEX_UNIT_SP, 42 * textScaling);
+ minute6.setTypeface(typeface != null ? typeface : minute6.getTypeface(), Typeface.NORMAL);
+ minute6.setIncludeFontPadding(false);
+ final TextView minuteText6 = new TextView(mContext);
+ minuteText6.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ minuteText6.setText("MINUTES");
+ minuteText6.setAllCaps(true);
+ minuteText6.setTextColor(mContext.getResources().getColor(android.R.color.white, mContext.getTheme()));
+ minuteText6.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16 * textScaling);
+ minuteText6.setTypeface(typeface != null ? typeface : minuteText6.getTypeface(), Typeface.NORMAL);
+ minuteText6.setIncludeFontPadding(false);
+ minuteText6.setAlpha(0.4f);
+ ViewGroup.MarginLayoutParams minuteTextParams6 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ minuteTextParams6.setMargins(0, 12 + topMargin, 0, 0);
+ minuteText6.setLayoutParams(minuteTextParams6);
+ final LinearLayout minuteContainer6 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams minuteLayoutParams6 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ minuteLayoutParams6.gravity = Gravity.CENTER;
+ minuteLayoutParams6.setMargins(margin6, margin6, margin6, margin6);
+ minuteContainer6.setLayoutParams(minuteLayoutParams6);
+ minuteContainer6.setGravity(Gravity.CENTER);
+ minuteContainer6.setOrientation(LinearLayout.VERTICAL);
+ minuteContainer6.addView(minute6);
+ minuteContainer6.addView(minuteText6);
+ final LinearLayout container6 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams6 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams6.gravity = Gravity.CENTER_HORIZONTAL;
+ container6.setLayoutParams(layoutParams6);
+ container6.setGravity(Gravity.CENTER);
+ container6.setOrientation(LinearLayout.HORIZONTAL);
+ container6.setPadding(margin6, margin6, margin6, margin6 + (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()));
+ GradientDrawable mDrawable6 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.parseColor("#090909"), Color.parseColor("#090909")});
+ mDrawable6.setCornerRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, mContext.getResources().getDisplayMetrics()));
+ container6.setBackground(mDrawable6);
+ container6.addView(dayContainer6);
+ container6.addView(hourContainer6);
+ container6.addView(minuteContainer6);
+ container = container6;
+ }
+ case 7 -> {
+ final TextView time71 = new TextView(mContext);
+ String timeFormat71 = "It's";
+ time71.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ time71.setText(timeFormat71);
+ time71.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : mContext.getResources().getColor(R.color.white, mContext.getTheme()));
+ time71.setTextSize(TypedValue.COMPLEX_UNIT_SP, 42 * textScaling);
+ time71.setTypeface(typeface != null ? typeface : time71.getTypeface(), Typeface.NORMAL);
+ time71.setIncludeFontPadding(false);
+ ViewGroup.MarginLayoutParams timeLayoutParams71 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ timeLayoutParams71.setMargins(0, 12 + lineHeight, 0, 0);
+ time71.setLayoutParams(timeLayoutParams71);
+ final TextView time72 = new TextView(mContext);
+ String timeFormat72 = "One";
+ time72.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ time72.setText(timeFormat72);
+ time72.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : mContext.getResources().getColor(R.color.white, mContext.getTheme()));
+ time72.setTextSize(TypedValue.COMPLEX_UNIT_SP, 42 * textScaling);
+ time72.setTypeface(typeface != null ? typeface : time72.getTypeface(), Typeface.NORMAL);
+ time72.setIncludeFontPadding(false);
+ ViewGroup.MarginLayoutParams timeLayoutParams72 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ timeLayoutParams72.setMargins(0, 12 + lineHeight, 0, 0);
+ time72.setLayoutParams(timeLayoutParams72);
+ final TextView time73 = new TextView(mContext);
+ String timeFormat73 = "Sixteen";
+ time73.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ time73.setText(timeFormat73);
+ time73.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : mContext.getResources().getColor(R.color.white, mContext.getTheme()));
+ time73.setTextSize(TypedValue.COMPLEX_UNIT_SP, 42 * textScaling);
+ time73.setTypeface(typeface != null ? typeface : time73.getTypeface(), Typeface.NORMAL);
+ time73.setIncludeFontPadding(false);
+ ViewGroup.MarginLayoutParams timeLayoutParams73 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ timeLayoutParams73.setMargins(0, 12 + lineHeight, 0, 0);
+ time73.setLayoutParams(timeLayoutParams73);
+ final TextClock date7 = new TextClock(mContext);
+ date7.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+ date7.setFormat12Hour("EEEE, MMM dd");
+ date7.setFormat24Hour("EEEE, MMM dd");
+ date7.setTextColor(forceWhiteText ? mContext.getResources().getColor(android.R.color.white, mContext.getTheme()) : mContext.getResources().getColor(R.color.white, mContext.getTheme()));
+ date7.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22 * textScaling);
+ date7.setTypeface(typeface != null ? typeface : date7.getTypeface(), Typeface.NORMAL);
+ date7.setIncludeFontPadding(false);
+ ViewGroup.MarginLayoutParams dateLayoutParams7 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dateLayoutParams7.setMargins(0, 16 + lineHeight, 0, 0);
+ date7.setLayoutParams(dateLayoutParams7);
+ final LinearLayout container7 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams7 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams7.gravity = Gravity.CENTER_HORIZONTAL;
+ layoutParams7.setMargins((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomMargin, mContext.getResources().getDisplayMetrics()));
+ container7.setLayoutParams(layoutParams7);
+ container7.setGravity(Gravity.START | Gravity.CENTER_HORIZONTAL);
+ container7.setOrientation(LinearLayout.VERTICAL);
+ container7.addView(time71);
+ container7.addView(time72);
+ container7.addView(time73);
+ container7.addView(date7);
+ container = container7;
+ }
+ case 8 -> {
+ final TextClock day8 = new TextClock(mContext);
+ ViewGroup.MarginLayoutParams dayParams8 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dayParams8.setMargins(0, 0, 0, 0);
+ day8.setLayoutParams(dayParams8);
+ day8.setFormat12Hour("EEEE");
+ day8.setFormat24Hour("EEEE");
+ day8.setTextColor(mContext.getResources().getColor(forceWhiteText ? android.R.color.white : R.color.white, mContext.getTheme()));
+ day8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 28 * textScaling);
+ day8.setTypeface(typeface != null ? typeface : day8.getTypeface(), Typeface.BOLD);
+ day8.setIncludeFontPadding(false);
+ final TextClock clock8 = new TextClock(mContext);
+ ViewGroup.MarginLayoutParams clockParams8 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ clockParams8.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, -4 + lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ clock8.setLayoutParams(clockParams8);
+ clock8.setFormat12Hour("hh:mm");
+ clock8.setFormat24Hour("HH:mm");
+ clock8.setTextColor(mContext.getResources().getColor(forceWhiteText ? android.R.color.white : R.color.white, mContext.getTheme()));
+ clock8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 100 * textScaling);
+ clock8.setTypeface(typeface != null ? typeface : clock8.getTypeface(), Typeface.BOLD);
+ clock8.setIncludeFontPadding(false);
+ final TextClock date8 = new TextClock(mContext);
+ ViewGroup.MarginLayoutParams dateParams8 = new ViewGroup.MarginLayoutParams(ViewGroup.MarginLayoutParams.WRAP_CONTENT, ViewGroup.MarginLayoutParams.WRAP_CONTENT);
+ dateParams8.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, lineHeight, mContext.getResources().getDisplayMetrics()), 0, 0);
+ date8.setLayoutParams(dateParams8);
+ date8.setFormat12Hour("MMMM dd");
+ date8.setFormat24Hour("MMMM dd");
+ date8.setTextColor(mContext.getResources().getColor(forceWhiteText ? android.R.color.white : R.color.white, mContext.getTheme()));
+ date8.setTextSize(TypedValue.COMPLEX_UNIT_SP, 28 * textScaling);
+ date8.setTypeface(typeface != null ? typeface : date8.getTypeface(), Typeface.NORMAL);
+ date8.setIncludeFontPadding(false);
+ final LinearLayout container8 = new LinearLayout(mContext);
+ LinearLayout.LayoutParams layoutParams8 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ layoutParams8.gravity = Gravity.CENTER_HORIZONTAL;
+ layoutParams8.setMargins(0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, topMargin, mContext.getResources().getDisplayMetrics()), 0, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomMargin, mContext.getResources().getDisplayMetrics()));
+ container8.setLayoutParams(layoutParams8);
+ container8.setGravity(Gravity.CENTER);
+ container8.setOrientation(LinearLayout.VERTICAL);
+ container8.setPadding((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24 * textScaling, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40 * textScaling, mContext.getResources().getDisplayMetrics()), (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24 * textScaling, mContext.getResources().getDisplayMetrics()));
+ GradientDrawable mDrawable8 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{forceWhiteText ? android.R.color.white : (customColorEnabled ? customColorCode : mContext.getResources().getColor(R.color.white, mContext.getTheme())), forceWhiteText ? android.R.color.white : (customColorEnabled ? customColorCode : mContext.getResources().getColor(R.color.white, mContext.getTheme()))});
+ mDrawable8.setCornerRadius((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24 * textScaling, mContext.getResources().getDisplayMetrics()));
+ mDrawable8.setAlpha(50);
+ container8.setBackground(mDrawable8);
+ container8.addView(day8);
+ container8.addView(clock8);
+ container8.addView(date8);
+ container = container8;
+ }
+ case 9 -> {
+ LinearLayout mainLayout = new LinearLayout(mContext);
+ LinearLayout.LayoutParams mainParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ mainParams.gravity = Gravity.CENTER_HORIZONTAL;
+ mainParams.setMargins(
+ dpToPx(16, mContext),
+ 0,
+ dpToPx(16, mContext),
+ dpToPx(5, mContext)
+ );
+ mainLayout.setLayoutParams(mainParams
+ );
+ mainLayout.setPadding(dpToPx(10, mContext), 0, dpToPx(10, mContext), dpToPx(10, mContext));
+ mainLayout.setOrientation(LinearLayout.VERTICAL);
+
+ LinearLayout topClockLayout = new LinearLayout(mContext);
+ topClockLayout.setLayoutParams(new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ ));
+ topClockLayout.setOrientation(LinearLayout.HORIZONTAL);
+ topClockLayout.setGravity(Gravity.CENTER);
+
+ LinearLayout clock = new LinearLayout(mContext);
+ LinearLayout.LayoutParams clockParams = new LinearLayout.LayoutParams(
+ 0,
+ dpToPx(90, mContext)
+ );
+ clockParams.weight = 1;
+ clockParams.setMarginEnd(dpToPx(5, mContext));
+ clock.setLayoutParams(clockParams);
+
+ LinearLayout clockContainer = new LinearLayout(mContext);
+ LinearLayout.LayoutParams clockContainerParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.MATCH_PARENT
+ );
+ clockContainerParams.leftMargin = dpToPx(65, mContext);
+ clockContainer.setLayoutParams(clockContainerParams);
+ clockContainer.setGravity(Gravity.CENTER | Gravity.END | Gravity.FILL_HORIZONTAL | Gravity.START);
+ clockContainer.setOrientation(LinearLayout.VERTICAL);
+ clockContainer.setPadding(
+ 0,
+ dpToPx(10, mContext),
+ dpToPx(5, mContext),
+ dpToPx(10, mContext));
+
+ TextClock clockAmPm = new TextClock(mContext);
+ clockAmPm.setLayoutParams(new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ ));
+ clockAmPm.setFormat12Hour("a");
+ clockAmPm.setFormat24Hour("");
+ clockAmPm.setTextColor(Color.WHITE);
+ clockAmPm.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
+ clockAmPm.setTypeface(Typeface.DEFAULT_BOLD);
+ clockAmPm.setSingleLine();
+ clockAmPm.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+ clockAmPm.setAlpha(0.7f);
+
+ TextClock clockHourMin = new TextClock(mContext);
+ clockHourMin.setLayoutParams(new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ ));
+ clockHourMin.setFormat12Hour("hh:mm");
+ clockHourMin.setFormat24Hour("HH:mm");
+ clockHourMin.setTextColor(Color.WHITE);
+ clockHourMin.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
+ clockHourMin.setTypeface(Typeface.DEFAULT_BOLD);
+ clockHourMin.setSingleLine();
+ clockHourMin.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+
+
+ clockContainer.addView(clockAmPm);
+ clockContainer.addView(clockHourMin);
+ clock.addView(clockContainer);
+
+
+ LinearLayout calendar = new LinearLayout(mContext);
+ LinearLayout.LayoutParams calendarParams = new LinearLayout.LayoutParams(
+ dpToPx(0, mContext),
+ dpToPx(90, mContext)
+ );
+ calendarParams.weight = 1;
+ calendarParams.setMarginStart(dpToPx(5, mContext));
+ calendar.setLayoutParams(calendarParams);
+
+ LinearLayout calendarContainer = new LinearLayout(mContext);
+ LinearLayout.LayoutParams calendarContainerParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.MATCH_PARENT
+ );
+ calendarContainerParams.leftMargin = dpToPx(80, mContext);
+ calendarContainer.setLayoutParams(calendarContainerParams);
+ calendarContainer.setGravity(Gravity.CENTER | Gravity.END | Gravity.FILL_HORIZONTAL | Gravity.START);
+ calendarContainer.setOrientation(LinearLayout.VERTICAL);
+ calendarContainer.setPadding(
+ 0,
+ dpToPx(10, mContext),
+ dpToPx(5, mContext),
+ dpToPx(10, mContext));
+
+ TextClock calendarDay = new TextClock(mContext);
+ calendarDay.setLayoutParams(new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ ));
+ calendarDay.setFormat12Hour("EEEE");
+ calendarDay.setFormat24Hour("EEEE");
+ calendarDay.setTextColor(Color.WHITE);
+ calendarDay.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
+ calendarDay.setTypeface(Typeface.DEFAULT_BOLD);
+ calendarDay.setSingleLine();
+ calendarDay.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+ calendarDay.setAlpha(0.7f);
+
+ TextClock calendarDate = new TextClock(mContext);
+ calendarDate.setLayoutParams(new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ ));
+ calendarDate.setFormat12Hour("dd");
+ calendarDate.setFormat24Hour("dd");
+ calendarDate.setTextColor(Color.WHITE);
+ calendarDate.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24);
+ calendarDate.setTypeface(Typeface.DEFAULT_BOLD);
+ calendarDate.setSingleLine();
+ calendarDate.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+
+ TextClock calendarMonth = new TextClock(mContext);
+ calendarMonth.setLayoutParams(new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ ));
+ calendarMonth.setFormat12Hour("MMM");
+ calendarMonth.setFormat24Hour("MMM");
+ calendarMonth.setTextColor(Color.WHITE);
+ calendarMonth.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
+ calendarMonth.setTypeface(Typeface.DEFAULT_BOLD);
+ calendarMonth.setSingleLine();
+ calendarMonth.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
+
+ calendarContainer.addView(calendarDay);
+ calendarContainer.addView(calendarDate);
+ calendarContainer.addView(calendarMonth);
+
+ calendar.addView(calendarContainer);
+
+ topClockLayout.addView(clock);
+ topClockLayout.addView(calendar);
+
+ LinearLayout bottomClockLayout = new LinearLayout(mContext);
+ bottomClockLayout.setLayoutParams(new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ ));
+ bottomClockLayout.setOrientation(LinearLayout.HORIZONTAL);
+
+ LinearLayout progressBars = new LinearLayout(mContext);
+ LinearLayout.LayoutParams progressBarsParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ progressBarsParams.setMargins(
+ 0,
+ dpToPx(10, mContext),
+ 0,
+ 0
+ );
+ progressBars.setLayoutParams(progressBarsParams);
+ progressBars.setOrientation(LinearLayout.VERTICAL);
+ progressBars.setGravity(Gravity.CENTER);
+
+ LinearLayout progress1Container = new LinearLayout(mContext);
+ LinearLayout.LayoutParams progress1ContainerParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ progress1ContainerParams.bottomMargin = dpToPx(5, mContext);
+ progress1Container.setLayoutParams(progress1ContainerParams);
+ progress1Container.setOrientation(LinearLayout.HORIZONTAL);
+ progress1Container.setGravity(Gravity.CENTER_VERTICAL);
+
+ FrameLayout progress1Frame = new FrameLayout(mContext);
+ LinearLayout.LayoutParams progress1FrameParams = new LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ dpToPx(40, mContext)
+ );
+ progress1Frame.setLayoutParams(progress1FrameParams);
+ ProgressBar progress1 = new ProgressBar(mContext, null, android.R.attr.progressBarStyleHorizontal);
+ FrameLayout.LayoutParams progress1Params = new FrameLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ dpToPx(40, mContext)
+ );
+ progress1.setTag(MEDIA_PROGRESSBAR);
+ progress1.setLayoutParams(progress1Params);
+ progress1.setIndeterminate(false);
+ progress1.setIndeterminateDrawable(ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.widget_progress_track, mContext.getTheme()));
+ progress1.setProgressDrawable(ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.widget_progress_track, mContext.getTheme()));
+ progress1.setProgressTintList(ColorStateList.valueOf(ThemeUtils.getPrimaryColor(mContext)));
+ progress1.setProgress(50);
+
+ RelativeLayout progress1TextContainer = new RelativeLayout(mContext);
+ RelativeLayout.LayoutParams progress1TextContainerParams = new RelativeLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.MATCH_PARENT
+ );
+ progress1TextContainer.setLayoutParams(progress1TextContainerParams);
+ progress1TextContainer.setGravity(Gravity.CENTER_VERTICAL);
+ progress1TextContainer.setPadding(
+ dpToPx(10, mContext),
+ 0,
+ dpToPx(10, mContext),
+ 0
+ );
+
+ TextView progress1Title = new TextView(mContext);
+ RelativeLayout.LayoutParams progress1TitleParams = new RelativeLayout.LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ );
+ progress1TitleParams.addRule(RelativeLayout.ALIGN_PARENT_START);
+ progress1Title.setLayoutParams(progress1TitleParams);
+ progress1Title.setGravity(Gravity.START);
+ progress1Title.setText("Media volume");
+ progress1Title.setEllipsize(TextUtils.TruncateAt.END);
+ progress1Title.setTextColor(Color.WHITE);
+ progress1Title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
+ progress1Title.setTypeface(Typeface.DEFAULT_BOLD);
+ progress1Title.setSingleLine();
+ progress1Title.setCompoundDrawablePadding(dpToPx(3, mContext));
+ progress1Title.setCompoundDrawablesWithIntrinsicBounds(
+ R.drawable.ic_widget_media,
+ 0,
+ 0,
+ 0
+ );
+ TextViewCompat.setCompoundDrawableTintList(progress1Title, ColorStateList.valueOf(Color.WHITE));
+
+ TextView progress1Value = new TextView(mContext);
+ RelativeLayout.LayoutParams progress1ValueParams = new RelativeLayout.LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ );
+ progress1ValueParams.addRule(RelativeLayout.ALIGN_PARENT_END);
+ progress1Value.setLayoutParams(progress1ValueParams);
+ progress1Value.setTag(MEDIA_PROGRESSBAR_VALUE);
+ progress1Value.setGravity(Gravity.END);
+ progress1Value.setText("50%");
+ progress1Value.setTextColor(Color.WHITE);
+ progress1Value.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
+ progress1Value.setTypeface(Typeface.DEFAULT_BOLD);
+ progress1Value.setSingleLine();
+ progress1Value.setEllipsize(TextUtils.TruncateAt.END);
+
+ progress1TextContainer.addView(progress1Title);
+ progress1TextContainer.addView(progress1Value);
+
+ progress1Frame.addView(progress1);
+ progress1Frame.addView(progress1TextContainer);
+
+ progress1Container.addView(progress1Frame);
+
+ LinearLayout progress2Container = new LinearLayout(mContext);
+ LinearLayout.LayoutParams progress2ContainerParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ progress2ContainerParams.bottomMargin = dpToPx(5, mContext);
+ progress2Container.setLayoutParams(progress2ContainerParams);
+ progress2Container.setOrientation(LinearLayout.HORIZONTAL);
+ progress2Container.setGravity(Gravity.CENTER_VERTICAL);
+
+ FrameLayout progress2Frame = new FrameLayout(mContext);
+ LinearLayout.LayoutParams progress2FrameParams = new LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ dpToPx(40, mContext)
+ );
+ progress2Frame.setLayoutParams(progress2FrameParams);
+ ProgressBar progress2 = new ProgressBar(mContext, null, android.R.attr.progressBarStyleHorizontal);
+ FrameLayout.LayoutParams progress2Params = new FrameLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ dpToPx(40, mContext)
+ );
+ progress2.setTag(BATTERY_PROGRESSBAR);
+ progress2.setLayoutParams(progress2Params);
+ progress2.setIndeterminate(false);
+ progress2.setIndeterminateDrawable(ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.widget_progress_track, mContext.getTheme()));
+ progress2.setProgressDrawable(ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.widget_progress_track, mContext.getTheme()));
+ progress2.setProgressTintList(ColorStateList.valueOf(ThemeUtils.getPrimaryColor(mContext)));
+ progress2.setProgress(50);
+
+ RelativeLayout progress2TextContainer = new RelativeLayout(mContext);
+ RelativeLayout.LayoutParams progress2TextContainerParams = new RelativeLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.MATCH_PARENT
+ );
+ progress2TextContainer.setLayoutParams(progress2TextContainerParams);
+ progress2TextContainer.setGravity(Gravity.CENTER_VERTICAL);
+ progress2TextContainer.setPadding(
+ dpToPx(10, mContext),
+ 0,
+ dpToPx(10, mContext),
+ 0
+ );
+
+ TextView progress2Title = new TextView(mContext);
+ RelativeLayout.LayoutParams progress2TitleParams = new RelativeLayout.LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ );
+ progress2TitleParams.addRule(RelativeLayout.ALIGN_PARENT_START);
+ progress2Title.setLayoutParams(progress2TitleParams);
+ progress2Title.setGravity(Gravity.START);
+ progress2Title.setText("Battery Status");
+ progress2Title.setEllipsize(TextUtils.TruncateAt.END);
+ progress2Title.setTextColor(Color.WHITE);
+ progress2Title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
+ progress2Title.setTypeface(Typeface.DEFAULT_BOLD);
+ progress2Title.setSingleLine();
+ progress2Title.setCompoundDrawablePadding(dpToPx(3, mContext));
+ progress2Title.setCompoundDrawablesWithIntrinsicBounds(
+ R.drawable.ic_widget_power,
+ 0,
+ 0,
+ 0
+ );
+ TextViewCompat.setCompoundDrawableTintList(progress2Title, ColorStateList.valueOf(Color.WHITE));
+
+ TextView progress2Value = new TextView(mContext);
+ RelativeLayout.LayoutParams progress2ValueParams = new RelativeLayout.LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ );
+ progress2ValueParams.addRule(RelativeLayout.ALIGN_PARENT_END);
+ progress2Value.setLayoutParams(progress2ValueParams);
+ progress2Value.setTag(BATTERY_PROGRESSBAR_VALUE);
+ progress2Value.setGravity(Gravity.END);
+ progress2Value.setText("50%");
+ progress2Value.setTextColor(Color.WHITE);
+ progress2Value.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
+ progress2Value.setTypeface(Typeface.DEFAULT_BOLD);
+ progress2Value.setSingleLine();
+ progress2Value.setEllipsize(TextUtils.TruncateAt.END);
+
+ progress2TextContainer.addView(progress2Title);
+ progress2TextContainer.addView(progress2Value);
+
+ progress2Frame.addView(progress2);
+ progress2Frame.addView(progress2TextContainer);
+
+ progress2Container.addView(progress2Frame);
+
+ progressBars.addView(progress1Container);
+ progressBars.addView(progress2Container);
+
+ bottomClockLayout.addView(progressBars);
+
+ mainLayout.addView(topClockLayout);
+ mainLayout.addView(bottomClockLayout);
+
+ // Aggiunge il layout interno al layout principale
+ container = mainLayout;
+ }
+ case 10, 11 -> {
+ LinearLayout mainLayout = new LinearLayout(mContext);
+ LinearLayout.LayoutParams mainParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ mainParams.gravity = Gravity.CENTER_HORIZONTAL;
+
+
+ RelativeLayout mainLayout2 = new RelativeLayout(mContext);
+ RelativeLayout.LayoutParams mainParams2 = new RelativeLayout.LayoutParams(
+ RelativeLayout.LayoutParams.MATCH_PARENT,
+ RelativeLayout.LayoutParams.WRAP_CONTENT
+ );
+ mainLayout2.setLayoutParams(mainParams2);
+
+ LottieAnimationView animationView = new LottieAnimationView(mContext);
+ RelativeLayout.LayoutParams animationParams = new RelativeLayout.LayoutParams(
+ RelativeLayout.LayoutParams.MATCH_PARENT,
+ dpToPx(300, mContext)
+ );
+ animationParams.addRule(RelativeLayout.CENTER_IN_PARENT);
+ animationView.setLayoutParams(animationParams);
+ @RawRes int rawRes = style == 10 ? R.raw.loop : R.raw.dual_layer;
+ animationView.setAnimation(rawRes);
+ animationView.setRepeatCount(LottieDrawable.INFINITE);
+ animationView.playAnimation();
+
+ LinearLayout clockLayout = new LinearLayout(mContext);
+ RelativeLayout.LayoutParams clockParams = new RelativeLayout.LayoutParams(
+ RelativeLayout.LayoutParams.MATCH_PARENT,
+ RelativeLayout.LayoutParams.WRAP_CONTENT
+ );
+ int topMargin = style == 10 ? 65 : 75;
+ clockParams.setMargins(
+ 0,
+ dpToPx(topMargin, mContext),
+ 0,
+ 0
+ );
+ clockLayout.setLayoutParams(clockParams);
+ clockLayout.setOrientation(LinearLayout.HORIZONTAL);
+ clockLayout.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.TOP);
+
+ TextClock hour = new TextClock(mContext);
+ LinearLayout.LayoutParams hourParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ hourParams.weight = 1;
+ hour.setLayoutParams(hourParams);
+ hour.setFormat12Hour("hh");
+ hour.setFormat24Hour("kk");
+ hour.setTextColor(Color.WHITE);
+ hour.setTextSize(TypedValue.COMPLEX_UNIT_SP, 108);
+ hour.setTypeface(Typeface.DEFAULT_BOLD);
+ hour.setPadding(
+ 0,
+ 0,
+ dpToPx(4, mContext),
+ 0
+ );
+
+ TextClock minute = new TextClock(mContext);
+ LinearLayout.LayoutParams minuteParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ minuteParams.weight = 1;
+ minute.setLayoutParams(minuteParams);
+ minute.setFormat12Hour("mm");
+ minute.setFormat24Hour("mm");
+ minute.setTextColor(Color.WHITE);
+ minute.setTextSize(TypedValue.COMPLEX_UNIT_SP, 56);
+ minute.setTypeface(Typeface.DEFAULT_BOLD);
+ minute.setPadding(
+ dpToPx(4, mContext),
+ 0,
+ 0,
+ 0
+ );
+
+ clockLayout.addView(hour);
+ clockLayout.addView(minute);
+
+ mainLayout2.addView(animationView);
+ mainLayout2.addView(clockLayout);
+
+ mainLayout.addView(mainLayout2);
+
+ container = mainLayout;
+
+
+ }
+ /*case 10 -> {
+ RelativeLayout relativeLayout_817 = new RelativeLayout(this);
+ relativeLayout_817.setGravity(start|center);
+ LayoutParams layout_712 = new LayoutParams();
+ layout_712.width = LayoutParams.MATCH_PARENT;
+ layout_712.height = LayoutParams.WRAP_CONTENT;
+ layout_712.gravity = start|center;
+ relativeLayout_817.setLayoutParams(layout_712);
+
+ LinearLayout timeSection = new LinearLayout(this);
+ timeSection.setId(R.id.timeSection);
+ timeSection.setOrientation(VERTICAL);
+ LayoutParams layout_855 = new LayoutParams();
+ layout_855.width = LayoutParams.WRAP_CONTENT;
+ layout_855.height = LayoutParams.WRAP_CONTENT;
+ layout_855.setMarginStart20dp;
+ layout_855.topMargin = 40dp;
+ timeSection.setLayoutParams(layout_855);
+
+
+
+
+
+
+ relativeLayout_817.addView(timeSection);
+
+ LinearLayout timeTextSection = new LinearLayout(this);
+ timeTextSection.setId(R.id.timeTextSection);
+ timeTextSection.setOrientation(VERTICAL);
+ LayoutParams layout_538 = new LayoutParams();
+ layout_538.width = LayoutParams.WRAP_CONTENT;
+ layout_538.height = LayoutParams.WRAP_CONTENT;
+ layout_538.setMarginStart30dp;
+ layout_538.topMargin = 40dp;
+ timeTextSection.setLayoutParams(layout_538);
+
+ TextView timeLabel = new TextView(this);
+ timeLabel.setId(R.id.timeLabel);
+ timeLabel.setText("Time is");
+ timeLabel.setTextSize((12/getApplicationContext().getResources().getDisplayMetrics().scaledDensity));
+ timeLabel.setTextColor(Color.parseColor("#FFFFFF"));
+ timeLabel.setTypeface(@font/Future);
+ LayoutParams layout_362 = new LayoutParams();
+ layout_362.width = LayoutParams.WRAP_CONTENT;
+ layout_362.height = LayoutParams.WRAP_CONTENT;
+ layout_362.setMarginStart5dp;
+ layout_362.bottomMargin = -20dp;
+ timeLabel.setLayoutParams(layout_362);
+ timeTextSection.addView(timeLabel);
+
+ TextClock timeValue = new TextClock(this);
+ timeValue.setId(R.id.timeValue);
+ timeValue.setText("$df(h:mm a)$");
+ timeValue.setTextSize((25/getApplicationContext().getResources().getDisplayMetrics().scaledDensity));
+ timeValue.setTextColor(Color.parseColor("#FFFFFF"));
+ timeValue.setTypeface(@font/Futurist-Fixed-width-Bold);
+ LayoutParams layout_744 = new LayoutParams();
+ layout_744.width = LayoutParams.WRAP_CONTENT;
+ layout_744.height = LayoutParams.WRAP_CONTENT;
+ layout_744.bottomMargin = 20dp;
+ layout_744.topMargin = 30dp;
+ timeValue.setLayoutParams(layout_744);
+ timeTextSection.addView(timeValue);
+ relativeLayout_817.addView(timeTextSection);
+
+ LinearLayout calendarSection = new LinearLayout(this);
+ calendarSection.setId(R.id.calendarSection);
+ calendarSection.setOrientation(VERTICAL);
+ LayoutParams layout_600 = new LayoutParams();
+ layout_600.width = LayoutParams.WRAP_CONTENT;
+ layout_600.height = LayoutParams.WRAP_CONTENT;
+ layout_600.setMarginStart30dp;
+ layout_600.topMargin = 110dp;
+ calendarSection.setLayoutParams(layout_600);
+
+ TextView calendarLabel = new TextView(this);
+ calendarLabel.setId(R.id.calendarLabel);
+ calendarLabel.setText("Calendar");
+ calendarLabel.setTextSize((12/getApplicationContext().getResources().getDisplayMetrics().scaledDensity));
+ calendarLabel.setTextColor(Color.parseColor("#FFFFFF"));
+ calendarLabel.setTypeface(@font/Future);
+ LayoutParams layout_74 = new LayoutParams();
+ layout_74.width = LayoutParams.WRAP_CONTENT;
+ layout_74.height = LayoutParams.WRAP_CONTENT;
+ layout_74.setMarginStart5dp;
+ layout_74.bottomMargin = -20dp;
+ calendarLabel.setLayoutParams(layout_74);
+ calendarSection.addView(calendarLabel);
+
+ TextClock calendarValue = new TextClock(this);
+ calendarValue.setId(R.id.calendarValue);
+ calendarValue.setFormat12Hour("MMMM dd");
+ calendarValue.setFormat24Hour("MMMM dd");
+ calendarValue.setTextSize((25/getApplicationContext().getResources().getDisplayMetrics().scaledDensity));
+ calendarValue.setAllCaps(TRUE);
+ calendarValue.setTextColor(Color.parseColor("#FFFFFF"));
+ calendarValue.setTypeface(@font/Futurist-Fixed-width-Bold);
+ LayoutParams layout_933 = new LayoutParams();
+ layout_933.width = LayoutParams.WRAP_CONTENT;
+ layout_933.height = LayoutParams.WRAP_CONTENT;
+ layout_933.bottomMargin = 20dp;
+ layout_933.topMargin = 30dp;
+ calendarValue.setLayoutParams(layout_933);
+ calendarSection.addView(calendarValue);
+ relativeLayout_817.addView(calendarSection);
+
+ LinearLayout todaySection = new LinearLayout(this);
+ todaySection.setId(R.id.todaySection);
+ todaySection.setOrientation(VERTICAL);
+ LayoutParams layout_841 = new LayoutParams();
+ layout_841.width = LayoutParams.WRAP_CONTENT;
+ layout_841.height = LayoutParams.WRAP_CONTENT;
+ layout_841.setMarginStart30dp;
+ layout_841.topMargin = 180dp;
+ todaySection.setLayoutParams(layout_841);
+
+ TextView todayLabel = new TextView(this);
+ todayLabel.setId(R.id.todayLabel);
+ todayLabel.setText("Today is");
+ todayLabel.setTextSize((12/getApplicationContext().getResources().getDisplayMetrics().scaledDensity));
+ todayLabel.setTextColor(Color.parseColor("#FFFFFF"));
+ todayLabel.setTypeface(@font/Future);
+ LayoutParams layout_791 = new LayoutParams();
+ layout_791.width = LayoutParams.WRAP_CONTENT;
+ layout_791.height = LayoutParams.WRAP_CONTENT;
+ layout_791.setMarginStart5dp;
+ layout_791.bottomMargin = -20dp;
+ todayLabel.setLayoutParams(layout_791);
+ todaySection.addView(todayLabel);
+
+ TextClock todayValue = new TextClock(this);
+ todayValue.setId(R.id.todayValue);
+ todayValue.setFormat12Hour("EEEE");
+ todayValue.setFormat24Hour("EEEE");
+ todayValue.setTextSize((25/getApplicationContext().getResources().getDisplayMetrics().scaledDensity));
+ todayValue.setTextColor(Color.parseColor("#FFFFFF"));
+ todayValue.setAllCaps(TRUE);
+ todayValue.setTypeface(@font/Futurist-Fixed-width-Bold);
+ LayoutParams layout_65 = new LayoutParams();
+ layout_65.width = LayoutParams.WRAP_CONTENT;
+ layout_65.height = LayoutParams.WRAP_CONTENT;
+ layout_65.bottomMargin = 20dp;
+ layout_65.topMargin = 30dp;
+ todayValue.setLayoutParams(layout_65);
+ todaySection.addView(todayValue);
+ relativeLayout_817.addView(todaySection);
+ }*/
+ }
+
+ return container;
+ }
+
+ private static TextClock createTextClock(Context context, int textSize, int textColor) {
+ TextClock textClock = new TextClock(context);
+ textClock.setLayoutParams(new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ ));
+ textClock.setTextSize(textSize);
+ textClock.setTextColor(textColor);
+ return textClock;
+ }
+ private static LinearLayout createLinearLayout(Context context, int marginStart, int marginTop) {
+ LinearLayout linearLayout = new LinearLayout(context);
+ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ layoutParams.setMargins(dpToPx(marginStart, context), dpToPx(marginTop, context), 0, 0);
+ linearLayout.setLayoutParams(layoutParams);
+ return linearLayout;
+ }
+
+ private static View createColorView(Context context, int widthDp, int heightDp, int color) {
+ View view = new View(context);
+ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+ dpToPx(widthDp, context),
+ dpToPx(heightDp, context)
+ );
+ layoutParams.setMargins(0, 0, 0, dpToPx(10, context));
+ view.setLayoutParams(layoutParams);
+ view.setBackgroundColor(color);
+ return view;
+ }
+
+ private static TextView createTextView(Context context, String text, int textSizeSp, int marginBottomDp) {
+ TextView textView = new TextView(context);
+ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ layoutParams.setMargins(dpToPx(5, context), 0, 0, dpToPx(marginBottomDp, context));
+ textView.setLayoutParams(layoutParams);
+ textView.setText(text);
+ textView.setTextSize(textSizeSp);
+ textView.setTextColor(Color.WHITE);
+ //textView.setTypeface(context.getResources().getFont(R.font.future));
+ return textView;
+ }
+
+ private static TextClock createTextClock(Context context, String format, int textSizeSp, int marginTopDp, int marginBottomDp) {
+ TextClock textClock = new TextClock(context);
+ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.WRAP_CONTENT,
+ LinearLayout.LayoutParams.WRAP_CONTENT
+ );
+ layoutParams.setMargins(dpToPx(5, context), dpToPx(marginTopDp, context), 0, dpToPx(marginBottomDp, context));
+ textClock.setLayoutParams(layoutParams);
+ textClock.setFormat12Hour(format);
+ textClock.setFormat24Hour(format);
+ textClock.setTextSize(textSizeSp);
+ textClock.setTextColor(Color.WHITE);
+ //textClock.setTypeface(context.getResources().getFont(R.font.futurist_fixed_width_bold));
+ return textClock;
+ }
+
+ private static int dpToPx(int dp, Context context) {
+ float density = context.getResources().getDisplayMetrics().density;
+ return Math.round(dp * density);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/CategoryWidget.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/CategoryWidget.java
new file mode 100644
index 000000000..1d7c2bfe7
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/CategoryWidget.java
@@ -0,0 +1,63 @@
+package it.dhd.oxygencustomizer.ui.widgets;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import it.dhd.oxygencustomizer.R;
+
+public class CategoryWidget extends RelativeLayout {
+
+ private LinearLayout container;
+ private TextView titleTextView;
+
+ public CategoryWidget(Context context) {
+ super(context);
+ init(context, null);
+ }
+
+ public CategoryWidget(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(context, attrs);
+ }
+
+ public CategoryWidget(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(context, attrs);
+ }
+
+ private void init(Context context, AttributeSet attrs) {
+ inflate(context, R.layout.preference_category, this);
+
+ initializeId();
+
+ TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CategoryWidget);
+ setTitle(typedArray.getString(R.styleable.CategoryWidget_titleText));
+ typedArray.recycle();
+
+ setClickable(false);
+ }
+
+ public void setTitle(int titleResId) {
+ titleTextView.setText(titleResId);
+ }
+
+ public void setTitle(String title) {
+ titleTextView.setText(title);
+ }
+
+ @Override
+ public void setEnabled(boolean enabled) {
+ super.setEnabled(enabled);
+ titleTextView.setEnabled(enabled);
+ }
+
+ // to avoid listener bug, we need to re-generate unique id for each view
+ private void initializeId() {
+ titleTextView = findViewById(R.id.title);
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/ColorPickerWidget.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/ColorPickerWidget.java
new file mode 100644
index 000000000..c4941a488
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/ColorPickerWidget.java
@@ -0,0 +1,281 @@
+package it.dhd.oxygencustomizer.ui.widgets;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Color;
+import android.graphics.drawable.GradientDrawable;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.ColorInt;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.FragmentActivity;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.ui.activity.MainActivity;
+import it.dhd.oxygencustomizer.ui.events.ColorDismissedEvent;
+import it.dhd.oxygencustomizer.ui.events.ColorSelectedEvent;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+
+public class ColorPickerWidget extends RelativeLayout {
+
+ private RelativeLayout container;
+ private TextView titleTextView;
+ private TextView summaryTextView;
+ private View colorView;
+ private @ColorInt int selectedColor = Color.WHITE;
+ private int colorPickerDialogId;
+ private BeforeColorPickerListener beforeColorPickerListener;
+ private OnColorPickerListener colorPickerListener;
+ private AfterColorPickerListener afterColorPickerListener;
+
+ public ColorPickerWidget(Context context) {
+ super(context);
+ init(context, null);
+ }
+
+ public ColorPickerWidget(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(context, attrs);
+ }
+
+ public ColorPickerWidget(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(context, attrs);
+ }
+
+ private void init(Context context, AttributeSet attrs) {
+ inflate(context, R.layout.view_widget_colorpicker, this);
+
+ initializeId();
+
+ TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.ColorPickerWidget);
+ setTitle(typedArray.getString(R.styleable.ColorPickerWidget_titleText));
+ setSummary(typedArray.getString(R.styleable.ColorPickerWidget_summaryText));
+ int colorResId = typedArray.getResourceId(R.styleable.ColorPickerWidget_previewColor, -1);
+ selectedColor = typedArray.getColor(R.styleable.ColorPickerWidget_previewColor, Color.WHITE);
+ typedArray.recycle();
+
+ if (colorResId != -1) {
+ setPreviewColor(ContextCompat.getColor(getContext(), colorResId));
+ }
+ }
+
+ public void setTitle(int titleResId) {
+ titleTextView.setText(titleResId);
+ }
+
+ public void setTitle(String title) {
+ titleTextView.setText(title);
+ }
+
+ public void setSummary(int summaryResId) {
+ summaryTextView.setText(summaryResId);
+ }
+
+ public void setSummary(String summary) {
+ summaryTextView.setText(summary);
+ }
+
+ public void setColorPickerListener(
+ FragmentActivity activity,
+ int defaultColor,
+ boolean showPresets,
+ boolean showAlphaSlider,
+ boolean showColorShades
+ ) {
+ if (!(activity instanceof MainActivity)) {
+ throw new IllegalArgumentException("Activity must be instance of HomePage");
+ }
+
+ setPreviewColor(defaultColor);
+ container.setOnClickListener(v -> {
+ if (beforeColorPickerListener != null) {
+ beforeColorPickerListener.onColorPickerShown();
+ }
+
+ ((MainActivity) activity).showColorPickerDialog(
+ colorPickerDialogId,
+ this.selectedColor,
+ showPresets,
+ showAlphaSlider,
+ showColorShades);
+ }
+ );
+ }
+
+ public @ColorInt int getPreviewColor() {
+ return selectedColor;
+ }
+
+ public void setPreviewColor(@ColorInt int color) {
+ this.selectedColor = color;
+
+ if (!isEnabled()) {
+ if (SystemUtils.isDarkMode()) {
+ color = Color.DKGRAY;
+ } else {
+ color = Color.LTGRAY;
+ }
+ }
+
+ GradientDrawable drawable = new GradientDrawable(
+ GradientDrawable.Orientation.LEFT_RIGHT,
+ new int[]{color, color}
+ );
+ drawable.setCornerRadius(120 * getResources().getDisplayMetrics().density);
+ colorView.setBackground(drawable);
+ }
+
+ public int getColorPickerDialogId() {
+ return colorPickerDialogId;
+ }
+
+ private void onSelectedColorChanged(@ColorInt int color) {
+ }
+
+ @Override
+ public void setEnabled(boolean enabled) {
+ super.setEnabled(enabled);
+
+ container.setEnabled(enabled);
+ titleTextView.setEnabled(enabled);
+ summaryTextView.setEnabled(enabled);
+ setPreviewColor(enabled ? getPreviewColor() : Color.GRAY);
+ }
+
+ // to avoid listener bug, we need to re-generate unique id for each view
+ private void initializeId() {
+ container = findViewById(R.id.container);
+ titleTextView = findViewById(R.id.title);
+ summaryTextView = findViewById(R.id.summary);
+ colorView = findViewById(R.id.color_widget);
+
+ container.setId(View.generateViewId());
+ titleTextView.setId(View.generateViewId());
+ summaryTextView.setId(View.generateViewId());
+ colorView.setId(View.generateViewId());
+
+ colorPickerDialogId = colorView.getId();
+
+ RelativeLayout.LayoutParams layoutParams = (LayoutParams) findViewById(R.id.text_container).getLayoutParams();
+ layoutParams.addRule(RelativeLayout.START_OF, colorView.getId());
+ findViewById(R.id.text_container).setLayoutParams(layoutParams);
+ }
+
+ public void setBeforeColorPickerListener(BeforeColorPickerListener listener) {
+ beforeColorPickerListener = listener;
+ }
+
+ public void setOnColorSelectedListener(OnColorPickerListener listener) {
+ colorPickerListener = listener;
+ }
+
+ public void setAfterColorPickerListener(AfterColorPickerListener listener) {
+ afterColorPickerListener = listener;
+ }
+
+ @SuppressWarnings("unused")
+ @Subscribe
+ public void onColorSelected(ColorSelectedEvent event) {
+ if (event.dialogId() == colorPickerDialogId) {
+ setPreviewColor(event.selectedColor());
+
+ if (colorPickerListener != null) {
+ colorPickerListener.onColorSelected(event.selectedColor());
+ }
+ }
+ }
+
+ @SuppressWarnings("unused")
+ @Subscribe
+ public void onDialogDismissed(ColorDismissedEvent event) {
+ if (event.dialogId() == colorPickerDialogId) {
+ if (afterColorPickerListener != null) {
+ afterColorPickerListener.onColorPickerDismissed();
+ }
+ }
+ }
+
+ @Override
+ protected void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ EventBus.getDefault().register(this);
+ }
+
+ @Override
+ protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+ EventBus.getDefault().unregister(this);
+ }
+
+ public interface BeforeColorPickerListener {
+ void onColorPickerShown();
+ }
+
+ public interface OnColorPickerListener {
+ void onColorSelected(int color);
+ }
+
+ public interface AfterColorPickerListener {
+ void onColorPickerDismissed();
+ }
+
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ Parcelable superState = super.onSaveInstanceState();
+
+ SavedState ss = new SavedState(superState);
+ ss.selectedColor = selectedColor;
+
+ return ss;
+ }
+
+ @Override
+ protected void onRestoreInstanceState(Parcelable state) {
+ if (!(state instanceof SavedState ss)) {
+ super.onRestoreInstanceState(state);
+ return;
+ }
+
+ super.onRestoreInstanceState(ss.getSuperState());
+
+ setPreviewColor(ss.selectedColor);
+ }
+
+ private static class SavedState extends BaseSavedState {
+ int selectedColor;
+
+ SavedState(Parcelable superState) {
+ super(superState);
+ }
+
+ private SavedState(Parcel in) {
+ super(in);
+ selectedColor = in.readInt();
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ super.writeToParcel(dest, flags);
+ dest.writeInt(selectedColor);
+ }
+
+ public static final Parcelable.Creator CREATOR = new Parcelable.Creator<>() {
+ public SavedState createFromParcel(Parcel in) {
+ return new SavedState(in);
+ }
+
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/SliderWidget.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/SliderWidget.java
new file mode 100644
index 000000000..1ab0de796
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/SliderWidget.java
@@ -0,0 +1,304 @@
+package it.dhd.oxygencustomizer.ui.widgets;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.slider.Slider;
+
+import java.text.DecimalFormat;
+import java.util.Objects;
+
+import it.dhd.oxygencustomizer.R;
+
+public class SliderWidget extends RelativeLayout {
+
+ private LinearLayout container;
+ private TextView titleTextView;
+ private TextView summaryTextView;
+ private Slider materialSlider;
+ private MaterialButton resetButton;
+ private String valueFormat;
+ private int defaultValue;
+ private boolean hasResetButton;
+ private float outputScale = 1f;
+ private boolean isDecimalFormat = false;
+ private String decimalFormat = "#.#";
+ private OnLongClickListener resetClickListener;
+ private Slider.OnSliderTouchListener onSliderTouchListener;
+
+ public SliderWidget(Context context) {
+ super(context);
+ init(context, null);
+ }
+
+ public SliderWidget(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(context, attrs);
+ }
+
+ public SliderWidget(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(context, attrs);
+ }
+
+ private void init(Context context, AttributeSet attrs) {
+ inflate(context, R.layout.view_widget_slider, this);
+
+ initializeId();
+
+ TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.SliderWidget);
+ valueFormat = typedArray.getString(R.styleable.SliderWidget_valueFormat);
+ defaultValue = typedArray.getInt(R.styleable.SliderWidget_sliderDefaultValue, Integer.MAX_VALUE);
+ hasResetButton = typedArray.getBoolean(R.styleable.SliderWidget_hasResetButton, false);
+ setTitle(typedArray.getString(R.styleable.SliderWidget_titleText));
+ setSliderValueFrom(typedArray.getInt(R.styleable.SliderWidget_sliderValueFrom, 0));
+ setSliderValueTo(typedArray.getInt(R.styleable.SliderWidget_sliderValueTo, 100));
+ setSliderStepSize(typedArray.getInt(R.styleable.SliderWidget_sliderStepSize, 1));
+ setSliderValue(typedArray.getInt(
+ R.styleable.SliderWidget_sliderValue,
+ typedArray.getInt(R.styleable.SliderWidget_sliderDefaultValue, 50)
+ ));
+ isDecimalFormat = typedArray.getBoolean(R.styleable.SliderWidget_isDecimalFormat, false);
+ decimalFormat = typedArray.getString(R.styleable.SliderWidget_decimalFormat);
+ outputScale = typedArray.getFloat(R.styleable.SliderWidget_outputScale, 1f);
+ typedArray.recycle();
+
+ if (valueFormat == null) {
+ valueFormat = "";
+ }
+
+ if (decimalFormat == null) {
+ decimalFormat = "#.#";
+ }
+
+ setSelectedText();
+ setOnSliderTouchListener(null);
+ setResetClickListener(null);
+ }
+
+ public void setTitle(int titleResId) {
+ titleTextView.setText(titleResId);
+ }
+
+ public void setTitle(String title) {
+ titleTextView.setText(title);
+ }
+
+ public void setSelectedText() {
+ summaryTextView.setText(
+ (valueFormat.isBlank() || valueFormat.isEmpty() ?
+ String.valueOf(
+ !isDecimalFormat ?
+ (int) (materialSlider.getValue() / outputScale) :
+ new DecimalFormat(decimalFormat)
+ .format(materialSlider.getValue() / outputScale)
+ ) :
+ getContext().getString(
+ R.string.opt_selected2,
+ !isDecimalFormat ?
+ String.valueOf((int) materialSlider.getValue()) :
+ new DecimalFormat(decimalFormat)
+ .format(materialSlider.getValue() / outputScale),
+ valueFormat
+ )
+ )
+ );
+ }
+
+ public void setSliderStepSize(int value) {
+ materialSlider.setStepSize(value);
+ }
+
+ public int getSliderValue() {
+ return (int) materialSlider.getValue();
+ }
+
+ public void setSliderValue(int value) {
+ materialSlider.setValue(value);
+ setSelectedText();
+ }
+
+ public void setSliderValueFrom(int value) {
+ materialSlider.setValueFrom(value);
+ }
+
+ public void setSliderValueTo(int value) {
+ materialSlider.setValueTo(value);
+ }
+
+ public void setIsDecimalFormat(boolean isDecimalFormat) {
+ this.isDecimalFormat = isDecimalFormat;
+ setSelectedText();
+ }
+
+ public void setDecimalFormat(String decimalFormat) {
+ this.decimalFormat = Objects.requireNonNullElse(decimalFormat, "#.#");
+ setSelectedText();
+ }
+
+ public void setOutputScale(float scale) {
+ this.outputScale = scale;
+ setSelectedText();
+ }
+
+ public void setOnSliderTouchListener(Slider.OnSliderTouchListener listener) {
+ onSliderTouchListener = listener;
+
+ materialSlider.addOnSliderTouchListener(new Slider.OnSliderTouchListener() {
+ @Override
+ public void onStartTrackingTouch(@NonNull Slider slider) {
+ notifyOnSliderTouchStarted(slider);
+ }
+
+ @Override
+ public void onStopTrackingTouch(@NonNull Slider slider) {
+ setSelectedText();
+ notifyOnSliderTouchStopped(slider);
+ }
+ });
+
+ materialSlider.setLabelFormatter(value -> (valueFormat.isBlank() || valueFormat.isEmpty() ?
+ (!isDecimalFormat ?
+ (int) (materialSlider.getValue() / outputScale) :
+ new DecimalFormat(decimalFormat)
+ .format(materialSlider.getValue() / outputScale)) + valueFormat :
+ (!isDecimalFormat ?
+ String.valueOf((int) materialSlider.getValue()) :
+ new DecimalFormat(decimalFormat)
+ .format(materialSlider.getValue() / outputScale)) + valueFormat
+ ));
+ }
+
+ public void setOnSliderChangeListener(Slider.OnChangeListener listener) {
+ materialSlider.addOnChangeListener(listener);
+ }
+
+ public void setResetClickListener(OnLongClickListener listener) {
+ if (!hasResetButton) {
+ resetButton.setVisibility(View.GONE);
+ return;
+ }
+ resetClickListener = listener;
+
+ resetButton.setOnLongClickListener(v -> {
+ if (defaultValue == Integer.MAX_VALUE) {
+ return false;
+ }
+
+ setSliderValue(defaultValue);
+ notifyOnResetClicked(v);
+
+ return true;
+ });
+ }
+
+ public void resetSlider() {
+ resetButton.performLongClick();
+ }
+
+ private void notifyOnSliderTouchStarted(@NonNull Slider slider) {
+ if (onSliderTouchListener != null) {
+ onSliderTouchListener.onStartTrackingTouch(slider);
+ }
+ }
+
+ private void notifyOnSliderTouchStopped(@NonNull Slider slider) {
+ if (onSliderTouchListener != null) {
+ onSliderTouchListener.onStopTrackingTouch(slider);
+ }
+ }
+
+ private void notifyOnResetClicked(View v) {
+ if (resetClickListener != null) {
+ resetClickListener.onLongClick(v);
+ }
+ }
+
+ @Override
+ public void setEnabled(boolean enabled) {
+ super.setEnabled(enabled);
+
+ container.setEnabled(enabled);
+ titleTextView.setEnabled(enabled);
+ summaryTextView.setEnabled(enabled);
+ resetButton.setEnabled(enabled);
+ materialSlider.setEnabled(enabled);
+ }
+
+ // to avoid listener bug, we need to re-generate unique id for each view
+ private void initializeId() {
+ container = findViewById(R.id.container);
+ titleTextView = findViewById(R.id.title);
+ summaryTextView = findViewById(R.id.summary);
+ materialSlider = findViewById(R.id.slider_widget);
+ resetButton = findViewById(R.id.reset_button);
+
+ container.setId(View.generateViewId());
+ titleTextView.setId(View.generateViewId());
+ summaryTextView.setId(View.generateViewId());
+ materialSlider.setId(View.generateViewId());
+ resetButton.setId(View.generateViewId());
+ }
+
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ Parcelable superState = super.onSaveInstanceState();
+
+ SavedState ss = new SavedState(superState);
+ ss.sliderValue = materialSlider.getValue();
+
+ return ss;
+ }
+
+ @Override
+ protected void onRestoreInstanceState(Parcelable state) {
+ if (!(state instanceof SavedState ss)) {
+ super.onRestoreInstanceState(state);
+ return;
+ }
+
+ super.onRestoreInstanceState(ss.getSuperState());
+
+ materialSlider.setValue(ss.sliderValue);
+ setSelectedText();
+ }
+
+ private static class SavedState extends BaseSavedState {
+ float sliderValue;
+
+ SavedState(Parcelable superState) {
+ super(superState);
+ }
+
+ private SavedState(Parcel in) {
+ super(in);
+ sliderValue = in.readFloat();
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ super.writeToParcel(dest, flags);
+ dest.writeFloat(sliderValue);
+ }
+
+ public static final Parcelable.Creator CREATOR = new Parcelable.Creator<>() {
+ public SavedState createFromParcel(Parcel in) {
+ return new SavedState(in);
+ }
+
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/SwitchWidget.java b/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/SwitchWidget.java
new file mode 100644
index 000000000..33a7b43f2
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/ui/widgets/SwitchWidget.java
@@ -0,0 +1,182 @@
+package it.dhd.oxygencustomizer.ui.widgets;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.View;
+import android.widget.CompoundButton;
+import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.google.android.material.materialswitch.MaterialSwitch;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+
+public class SwitchWidget extends RelativeLayout {
+
+ private RelativeLayout container;
+ private TextView titleTextView;
+ private TextView summaryTextView;
+ private ImageView iconImageView;
+ private MaterialSwitch materialSwitch;
+ private BeforeSwitchChangeListener beforeSwitchChangeListener;
+
+ public SwitchWidget(Context context) {
+ super(context);
+ init(context, null);
+ }
+
+ public SwitchWidget(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(context, attrs);
+ }
+
+ public SwitchWidget(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(context, attrs);
+ }
+
+ private void init(Context context, AttributeSet attrs) {
+ inflate(context, R.layout.view_widget_switch, this);
+
+ initializeId();
+
+ TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.SwitchWidget);
+ setTitle(typedArray.getString(R.styleable.SwitchWidget_titleText));
+ setSummary(typedArray.getString(R.styleable.SwitchWidget_summaryText));
+ setSwitchChecked(typedArray.getBoolean(R.styleable.SwitchWidget_isChecked, false));
+ int icon = typedArray.getResourceId(R.styleable.SwitchWidget_icon, 0);
+ boolean iconSpaceReserved = typedArray.getBoolean(R.styleable.SwitchWidget_iconSpaceReserved, false);
+ typedArray.recycle();
+
+ if (icon != 0) {
+ iconSpaceReserved = true;
+ iconImageView.setImageResource(icon);
+ }
+
+ if (!iconSpaceReserved) {
+ iconImageView.setVisibility(GONE);
+ }
+
+ container.setOnClickListener(v -> {
+ if (materialSwitch.isEnabled()) {
+ if (beforeSwitchChangeListener != null) {
+ beforeSwitchChangeListener.beforeSwitchChanged();
+ }
+
+ materialSwitch.toggle();
+ }
+ });
+ }
+
+ public void setTitle(int titleResId) {
+ titleTextView.setText(titleResId);
+ }
+
+ public void setTitle(String title) {
+ titleTextView.setText(title);
+ }
+
+ public void setSummary(int summaryResId) {
+ summaryTextView.setText(summaryResId);
+ }
+
+ public void setSummary(String summary) {
+ if (TextUtils.isEmpty(summary)) {
+ summaryTextView.setVisibility(GONE);
+ } else {
+ summaryTextView.setVisibility(VISIBLE);
+ summaryTextView.setText(summary);
+ }
+ }
+
+ public void setIcon(int icon) {
+ iconImageView.setImageResource(icon);
+ iconImageView.setVisibility(VISIBLE);
+ }
+
+ public void setIcon(Drawable drawable) {
+ iconImageView.setImageDrawable(drawable);
+ iconImageView.setVisibility(VISIBLE);
+ }
+
+ public void setIconVisibility(int visibility) {
+ iconImageView.setVisibility(visibility);
+ }
+
+ public boolean isSwitchChecked() {
+ return materialSwitch.isChecked();
+ }
+
+ public void setSwitchChecked(boolean isChecked) {
+ materialSwitch.setChecked(isChecked);
+ }
+
+ public void setSwitchChangeListener(CompoundButton.OnCheckedChangeListener listener) {
+ materialSwitch.setOnCheckedChangeListener(listener);
+ }
+
+ public void setBeforeSwitchChangeListener(BeforeSwitchChangeListener listener) {
+ beforeSwitchChangeListener = listener;
+ }
+
+ @Override
+ public void setEnabled(boolean enabled) {
+ super.setEnabled(enabled);
+
+ if (enabled) {
+ TypedValue typedValue = new TypedValue();
+ TypedArray a = getContext().obtainStyledAttributes(
+ typedValue.data,
+ new int[]{com.google.android.material.R.attr.colorPrimary}
+ );
+ int color = a.getColor(0, 0);
+ a.recycle();
+
+ iconImageView.setImageTintList(ColorStateList.valueOf(color));
+ } else {
+ if (SystemUtils.isDarkMode()) {
+ iconImageView.setImageTintList(ColorStateList.valueOf(Color.DKGRAY));
+ } else {
+ iconImageView.setImageTintList(ColorStateList.valueOf(Color.LTGRAY));
+ }
+ }
+
+ container.setEnabled(enabled);
+ iconImageView.setEnabled(enabled);
+ titleTextView.setEnabled(enabled);
+ summaryTextView.setEnabled(enabled);
+ materialSwitch.setEnabled(enabled);
+ }
+
+ // to avoid listener bug, we need to re-generate unique id for each view
+ private void initializeId() {
+ container = findViewById(R.id.container);
+ iconImageView = findViewById(R.id.icon);
+ titleTextView = findViewById(R.id.title);
+ summaryTextView = findViewById(R.id.summary);
+ materialSwitch = findViewById(R.id.switch_widget);
+
+ container.setId(View.generateViewId());
+ iconImageView.setId(View.generateViewId());
+ titleTextView.setId(View.generateViewId());
+ summaryTextView.setId(View.generateViewId());
+ materialSwitch.setId(View.generateViewId());
+
+ RelativeLayout.LayoutParams layoutParams = (LayoutParams) findViewById(R.id.text_container).getLayoutParams();
+ layoutParams.addRule(RelativeLayout.START_OF, materialSwitch.getId());
+ layoutParams.addRule(RelativeLayout.END_OF, iconImageView.getId());
+ findViewById(R.id.text_container).setLayoutParams(layoutParams);
+ }
+
+ public interface BeforeSwitchChangeListener {
+ void beforeSwitchChanged();
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/AppUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/AppUtils.java
new file mode 100644
index 000000000..1c94f79f9
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/AppUtils.java
@@ -0,0 +1,113 @@
+package it.dhd.oxygencustomizer.utils;
+
+import static android.provider.Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION;
+
+import android.Manifest;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.os.Environment;
+
+import androidx.core.app.ActivityCompat;
+
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.xposed.utils.BootLoopProtector;
+import it.dhd.oxygencustomizer.xposed.utils.ShellUtils;
+
+public class AppUtils {
+
+ public static boolean isAppInstalled(Context context, String packageName) {
+ PackageManager pm = context.getPackageManager();
+ try {
+ pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
+ return true;
+ } catch (PackageManager.NameNotFoundException e) {
+ // not installed
+ }
+ return false;
+ }
+
+ public static void restartScopes(Context context, String[] scopes) {
+ String[] list = new String[]{
+ context.getString(R.string.restart_module),
+ context.getString(R.string.restart_page_scope)
+ };
+
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context, com.google.android.material.R.style.ThemeOverlay_Material3_MaterialAlertDialog_Centered);
+ builder.setItems(list, (dialog, which) -> {
+ switch (which) {
+ case 0 -> restartAllScope(context);
+ case 1 -> restartAllScope(scopes);
+ }
+ });
+ builder.show();
+ }
+
+ public static void restartAllScope(Context context) {
+ String[] xposedScope = context.getResources().getStringArray(R.array.xposed_scope);
+ ArrayList commands = new ArrayList<>();
+ for (String scope : xposedScope) {
+ if ("android".equals(scope)) continue;
+ if (scope.contains("systemui")) {
+ commands.add("kill -9 `pgrep systemui`");
+ continue;
+ }
+ commands.add("pkill -9 " + scope);
+ commands.add("am force-stop " + scope);
+ }
+ MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context);
+ builder.setMessage(context.getString(R.string.restart_scope_message));
+ builder.setPositiveButton(context.getString(android.R.string.ok), (dialog, which) -> {
+ new Thread(() -> {
+ try {
+
+ ShellUtils.execCommand(commands, true);
+ } catch (Exception ignored) {
+ }
+ }).start();
+ });
+ builder.setNeutralButton(context.getString(android.R.string.cancel), null);
+ builder.show();
+ }
+
+ public static void restartAllScope(String[] scopes) {
+ List commands = new ArrayList<>();
+ for (String scope : scopes) {
+ if ("android".equals(scope)) continue;
+ if (scope.contains("systemui")) {
+ commands.add("kill -9 `pgrep systemui`");
+ continue;
+ }
+ commands.add("killall " + scope);
+ commands.add("am force-stop " + scope);
+ BootLoopProtector.resetCounter(scope);
+ }
+ ShellUtils.execCommand(commands, true);
+ }
+
+ public static boolean hasStoragePermission() {
+ return Environment.isExternalStorageManager() || Environment.isExternalStorageLegacy();
+ }
+
+ public static void requestStoragePermission(Context context) {
+ Intent intent = new Intent();
+ intent.setAction(ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
+ intent.setData(Uri.fromParts("package", BuildConfig.APPLICATION_ID, null));
+ ((Activity) context).startActivityForResult(intent, 0);
+
+ ActivityCompat.requestPermissions((Activity) context, new String[]{
+ Manifest.permission.READ_EXTERNAL_STORAGE,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
+ Manifest.permission.MANAGE_EXTERNAL_STORAGE
+ }, 0);
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/CarouselLayoutManager.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/CarouselLayoutManager.java
new file mode 100644
index 000000000..280ca16ad
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/CarouselLayoutManager.java
@@ -0,0 +1,59 @@
+package it.dhd.oxygencustomizer.utils;
+
+import android.content.Context;
+import android.view.View;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+public class CarouselLayoutManager extends LinearLayoutManager {
+
+ private float minifyAmount = 0.05f;
+ private float minifyDistance = 0.9f;
+
+ public CarouselLayoutManager(Context context, int orientation, boolean reverseLayout) {
+ super(context, orientation, reverseLayout);
+ }
+
+ @Override
+ public int scrollHorizontallyBy(int dx, RecyclerView.Recycler recycler, RecyclerView.State state) {
+ int scrolled = super.scrollHorizontallyBy(dx, recycler, state);
+ updateScaleFactors();
+ return scrolled;
+ }
+
+ @Override
+ public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
+ super.onLayoutChildren(recycler, state);
+ updateScaleFactors();
+ }
+
+ private void updateScaleFactors() {
+ float parentMidpoint = getWidth() / 2.0f;
+ float d0 = 0.00f;
+ float d1 = parentMidpoint * minifyDistance;
+ float s0 = 1.0f;
+ float s1 = 1.0f - minifyAmount;
+
+ for (int i = 0; i < getChildCount(); i++) {
+ View child = getChildAt(i);
+ if (child == null) continue;
+
+ float childMidpoint = (getDecoratedLeft(child) + getDecoratedRight(child)) / 2.f;
+ float d = Math.min(d1, Math.abs(parentMidpoint - childMidpoint));
+ float scaleFactor = s0 + (s1 - s0) * (d - d0) / (d1 - d0);
+
+ child.setScaleX(scaleFactor);
+ child.setScaleY(scaleFactor);
+ }
+ }
+
+ // Getters and setters for customization options
+ public void setMinifyAmount(float minifyAmount) {
+ this.minifyAmount = minifyAmount;
+ }
+
+ public void setMinifyDistance(float minifyDistance) {
+ this.minifyDistance = minifyDistance;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/Constants.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/Constants.java
new file mode 100644
index 000000000..9d998db6f
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/Constants.java
@@ -0,0 +1,527 @@
+package it.dhd.oxygencustomizer.utils;
+
+import android.os.Environment;
+
+import java.util.Arrays;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.xposed.utils.BootLoopProtector;
+
+public class Constants {
+
+ public static class Packages {
+ public static final String FRAMEWORK = "android";
+ public static final String SYSTEM_UI = "com.android.systemui";
+ public static final String TELECOM_SERVER_PACKAGE = "com.android.server.telecom";
+ public static final String LAUNCHER = "com.android.launcher";
+ public static final String SETTINGS = "com.android.settings";
+ }
+
+ public static class Preferences {
+ public static class General {
+ public static final List PREF_UPDATE_EXCLUSIONS = Arrays.asList(BootLoopProtector.LOAD_TIME_KEY_KEY, BootLoopProtector.PACKAGE_STRIKE_KEY_KEY);
+ }
+ public static class Framework {
+ public static final String SENSOR_BLOCK = "sensor_block";
+ public static final String SENSOR_BLOCK_APP_LIST = "sensor_block_app_list";
+ public static final String SENSOR_BLOCKED_APP = "sensor_blocked_app";
+ public static final String SENSOR_BLOCK_APP_DUMMY = "sensor_blocked_app_dummy";
+ }
+ public static class BatteryPrefs {
+ public static final String CUSTOMIZE_BATTERY_ICON = "battery_icon_customize";
+ public static final String CUSTOM_BATTERY_LAYOUT_REVERSE = "battery_rotate_layout";
+ public static final String CUSTOM_BATTERY_MARGINS = "category_battery_margins";
+ public static final String CUSTOM_BATTERY_MARGIN_LEFT = "battery_margin_left";
+ public static final String CUSTOM_BATTERY_MARGIN_TOP = "battery_margin_top";
+ public static final String CUSTOM_BATTERY_MARGIN_RIGHT = "battery_margin_right";
+ public static final String CUSTOM_BATTERY_MARGIN_BOTTOM = "battery_margin_bottom";
+ public static final String CUSTOM_BATTERY_PERIMETER_ALPHA = "battery_perimeter_alpha";
+ public static final String CUSTOM_BATTERY_FILL_ALPHA = "battery_fill_alpha";
+ public static final String CUSTOM_BATTERY_RAINBOW_FILL_COLOR = "battery_rainbow_color";
+ public static final String CUSTOM_BATTERY_BLEND_COLOR = "battery_blend_color";
+ public static final String CUSTOM_BATTERY_CHARGING_COLOR = "battery_charging_fill_color";
+ public static final String CUSTOM_BATTERY_FAST_CHARGING_COLOR = "battery_fast_charging_fill_color";
+ public static final String CUSTOM_BATTERY_FILL_COLOR = "battery_fill_color";
+ public static final String CUSTOM_BATTERY_FILL_GRAD_COLOR = "battery_fill_gradient_color";
+ public static final String CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR = "battery_powersave_icon_color";
+ public static final String CUSTOM_BATTERY_POWERSAVE_FILL_COLOR = "battery_powersave_fill_color";
+ public static final String CUSTOM_BATTERY_SWAP_PERCENTAGE = "battery_reverse_layout";
+ public static final String CUSTOM_BATTERY_CHARGING_ICON_SWITCH = "battery_icon_change_charging_icon";
+ public static final String CUSTOM_BATTERY_CHARGING_ICON_STYLE = "battery_charging_icon_style";
+ public static final String CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT = "battery_charging_icon_margin_left";
+ public static final String CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT = "battery_charging_icon_margin_right";
+ public static final String CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT = "battery_charging_icon_size";
+ public static final String CUSTOM_BATTERY_HIDE_PERCENTAGE = "battery_hide_percentage";
+ public static final String CUSTOM_BATTERY_INSIDE_PERCENTAGE = "battery_inside_percentage";
+ public static final String CUSTOM_BATTERY_HIDE_BATTERY = "battery_hide_battery";
+ public static final String CUSTOM_BATTERY_STYLE = "battery_icon_style";
+ public static final String CUSTOM_BATTERY_WIDTH = "battery_width";
+ public static final String CUSTOM_BATTERY_HEIGHT = "battery_height";
+ public static final String STOCK_CUSTOMIZE_PERCENTAGE_SIZE = "customize_stock_percentage_size";
+ public static final String STOCK_PERCENTAGE_SIZE = "stock_percentage_size";
+
+ public static final String[] BatteryPrefs = {
+ CUSTOMIZE_BATTERY_ICON,
+ CUSTOM_BATTERY_LAYOUT_REVERSE,
+ CUSTOM_BATTERY_MARGINS,
+ CUSTOM_BATTERY_MARGIN_LEFT,
+ CUSTOM_BATTERY_MARGIN_TOP,
+ CUSTOM_BATTERY_MARGIN_RIGHT,
+ CUSTOM_BATTERY_MARGIN_BOTTOM,
+ CUSTOM_BATTERY_PERIMETER_ALPHA,
+ CUSTOM_BATTERY_FILL_ALPHA,
+ CUSTOM_BATTERY_RAINBOW_FILL_COLOR,
+ CUSTOM_BATTERY_BLEND_COLOR,
+ CUSTOM_BATTERY_CHARGING_COLOR,
+ CUSTOM_BATTERY_FAST_CHARGING_COLOR,
+ CUSTOM_BATTERY_FILL_COLOR,
+ CUSTOM_BATTERY_FILL_GRAD_COLOR,
+ CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR,
+ CUSTOM_BATTERY_POWERSAVE_FILL_COLOR,
+ CUSTOM_BATTERY_SWAP_PERCENTAGE,
+ CUSTOM_BATTERY_CHARGING_ICON_SWITCH,
+ CUSTOM_BATTERY_CHARGING_ICON_STYLE,
+ CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT,
+ CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT,
+ CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT,
+ CUSTOM_BATTERY_HIDE_PERCENTAGE,
+ CUSTOM_BATTERY_INSIDE_PERCENTAGE,
+ CUSTOM_BATTERY_HIDE_BATTERY,
+ CUSTOM_BATTERY_STYLE,
+ CUSTOM_BATTERY_WIDTH,
+ CUSTOM_BATTERY_HEIGHT
+
+ };
+
+ // Battery styles
+ public static final int BATTERY_STYLE_DEFAULT = 0;
+ public static final int BATTERY_STYLE_DEFAULT_RLANDSCAPE = 1;
+ public static final int BATTERY_STYLE_DEFAULT_LANDSCAPE = 2;
+ public static final int BATTERY_STYLE_CUSTOM_RLANDSCAPE = 3;
+ public static final int BATTERY_STYLE_CUSTOM_LANDSCAPE = 4;
+ public static final int BATTERY_STYLE_PORTRAIT_CAPSULE = 5;
+ public static final int BATTERY_STYLE_PORTRAIT_LORN = 6;
+ public static final int BATTERY_STYLE_PORTRAIT_MX = 7;
+ public static final int BATTERY_STYLE_PORTRAIT_AIROO = 8;
+ public static final int BATTERY_STYLE_RLANDSCAPE_STYLE_A = 9;
+ public static final int BATTERY_STYLE_LANDSCAPE_STYLE_A = 10;
+ public static final int BATTERY_STYLE_RLANDSCAPE_STYLE_B = 11;
+ public static final int BATTERY_STYLE_LANDSCAPE_STYLE_B = 12;
+ public static final int BATTERY_STYLE_LANDSCAPE_IOS_15 = 13;
+ public static final int BATTERY_STYLE_LANDSCAPE_IOS_16 = 14;
+ public static final int BATTERY_STYLE_PORTRAIT_ORIGAMI = 15;
+ public static final int BATTERY_STYLE_LANDSCAPE_SMILEY = 16;
+ public static final int BATTERY_STYLE_LANDSCAPE_MIUI_PILL = 17;
+ public static final int BATTERY_STYLE_LANDSCAPE_COLOROS = 18;
+ public static final int BATTERY_STYLE_RLANDSCAPE_COLOROS = 19;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYA = 20;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYB = 21;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYC = 22;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYD = 23;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYE = 24;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYF = 25;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYG = 26;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYH = 27;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYI = 28;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYJ = 29;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYK = 30;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYL = 31;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYM = 32;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYN = 33;
+ public static final int BATTERY_STYLE_LANDSCAPE_BATTERYO = 34;
+ public static final int BATTERY_STYLE_CIRCLE = 35;
+ public static final int BATTERY_STYLE_DOTTED_CIRCLE = 36;
+
+ }
+ public static class QsHeaderImage {
+ public static final String QS_HEADER_IMAGE_ENABLED =
+ "qs_header_image_enabled";
+ public static final String QS_HEADER_IMAGE_VALUE =
+ "qs_header_image_number";
+ public static final String QS_HEADER_IMAGE_TINT =
+ "qs_header_image_tint";
+ public static final String QS_HEADER_IMAGE_TINT_CUSTOM =
+ "qs_header_image_tint_custom";
+ public static final String QS_HEADER_IMAGE_TINT_INTENSITY =
+ "qs_header_image_tint_intensity";
+ public static final String QS_HEADER_IMAGE_ALPHA =
+ "qs_header_image_alpha";
+ public static final String QS_HEADER_IMAGE_HEIGHT_PORTRAIT =
+ "qs_header_image_height_portrait";
+ public static final String QS_HEADER_IMAGE_LANDSCAPE_ENABLED =
+ "qs_header_image_landscape_enabled";
+ public static final String QS_HEADER_IMAGE_PADDING_SIDE =
+ "qs_header_image_padding_side";
+ public static final String QS_HEADER_IMAGE_PADDING_TOP =
+ "qs_header_image_padding_top";
+ public static final String QS_HEADER_IMAGE_URI =
+ "qs_header_image_uri";
+ public static final String QS_HEADER_IMAGE_ZOOM_TO_FIT =
+ "qs_header_image_zoom_to_fit";
+
+ public static final String QS_HEADER_IMAGE_BOTTOM_FADE =
+ "qs_header_image_bottom_fade";
+ public static final String[] QS_PREFS = {
+ QS_HEADER_IMAGE_ENABLED,
+ QS_HEADER_IMAGE_VALUE,
+ QS_HEADER_IMAGE_TINT,
+ QS_HEADER_IMAGE_TINT_CUSTOM,
+ QS_HEADER_IMAGE_TINT_INTENSITY,
+ QS_HEADER_IMAGE_ALPHA,
+ QS_HEADER_IMAGE_BOTTOM_FADE,
+ QS_HEADER_IMAGE_HEIGHT_PORTRAIT,
+ QS_HEADER_IMAGE_LANDSCAPE_ENABLED,
+ QS_HEADER_IMAGE_PADDING_SIDE,
+ QS_HEADER_IMAGE_PADDING_TOP,
+ QS_HEADER_IMAGE_URI,
+ QS_HEADER_IMAGE_ZOOM_TO_FIT
+ };
+ }
+ public static class QsTiles {
+ public static final String QS_CUSTOMIZE_TILES = "quick_settings_tiles_customize";
+ public static final String QS_QUICK_TILES = "quick_settings_quick_tiles";
+ public static final String QS_ROWS = "quick_settings_tiles_rows";
+ public static final String QS_COLUMNS = "quick_settings_tiles_horizontal_columns";
+
+ public static final String[] QS_TILES_PREFS = {
+ QS_CUSTOMIZE_TILES,
+ QS_QUICK_TILES,
+ QS_ROWS,
+ QS_COLUMNS
+ };
+ }
+ public static class QsTilesCustomization {
+ public static final String QS_TILE_ACTIVE_COLOR_ENABLED = "qs_tile_active_color_enabled";
+ public static final String QS_TILE_ACTIVE_COLOR = "qs_tile_active_color";
+ public static final String QS_TILE_INACTIVE_COLOR_ENABLED = "qs_tile_inactive_color_enabled";
+ public static final String QS_TILE_INACTIVE_COLOR = "qs_tile_inactive_color";
+ public static final String QS_TILE_DISABLED_COLOR_ENABLED = "qs_tile_disabled_color_enabled";
+ public static final String QS_TILE_DISABLED_COLOR = "qs_tile_disabled_color";
+ public static final String QS_TILE_HIDE_LABELS = "qs_hide_labels";
+ public static final String QS_TILE_LABELS_CUSTOM_COLOR_ENABLED = "qs_tile_label_enabled";
+ public static final String QS_TILE_LABELS_CUSTOM_COLOR = "qs_tile_label";
+ public static final String QS_BRIGHTNESS_SLIDER_CUSTOMIZE = "customize_brightness_slider";
+ public static final String QS_BRIGHTNESS_SLIDER_COLOR_MODE = "brightness_slider_progress_color_mode";
+ public static final String QS_BRIGHTNESS_SLIDER_COLOR = "brightness_slider_color";
+ public static final String QS_BRIGHTNESS_SLIDER_BACKGROUND_ENABLED = "brightness_slider_background_color_enabled";
+ public static final String QS_BRIGHTNESS_SLIDER_BACKGROUND_COLOR = "brightness_slider_background_color";
+
+ public static final String[] QS_UPDATE_PREFS = {
+ QS_TILE_ACTIVE_COLOR_ENABLED,
+ QS_TILE_ACTIVE_COLOR,
+ QS_TILE_INACTIVE_COLOR_ENABLED,
+ QS_TILE_INACTIVE_COLOR,
+ QS_TILE_DISABLED_COLOR_ENABLED,
+ QS_TILE_DISABLED_COLOR,
+ QS_BRIGHTNESS_SLIDER_CUSTOMIZE,
+ QS_BRIGHTNESS_SLIDER_COLOR_MODE,
+ QS_BRIGHTNESS_SLIDER_COLOR,
+ QS_BRIGHTNESS_SLIDER_BACKGROUND_ENABLED,
+ QS_BRIGHTNESS_SLIDER_BACKGROUND_COLOR
+ };
+
+ }
+
+ public static class QsHeaderClock {
+ // Custom Switch
+ public static final String QS_HEADER_CLOCK_CUSTOM_ENABLED = "qs_header_clock_custom_enabled";
+ public static final String QS_HEADER_CLOCK_CUSTOM_VALUE = "qs_header_clock_custom_value";
+
+ // Stock Clock Prefs
+ public static final String QS_HEADER_CLOCK_STOCK_RED_MODE = "qs_header_stock_clock_red_one_mode";
+ public static final String QS_HEADER_CLOCK_STOCK_RED_MODE_COLOR = "qs_header_stock_clock_red_one_color";
+ public static final String QS_HEADER_CLOCK_STOCK_TIME_COLOR_SWITCH = "qs_header_stock_clock_custom_color_switch";
+ public static final String QS_HEADER_CLOCK_STOCK_TIME_COLOR = "qs_header_stock_clock_custom_color";
+ public static final String QS_HEADER_CLOCK_STOCK_HIDE_DATE = "qs_header_stock_clock_date_hide";
+ public static final String QS_HEADER_CLOCK_STOCK_DATE_COLOR_SWITCH = "qs_header_stock_clock_date_custom_color_switch";
+ public static final String QS_HEADER_CLOCK_STOCK_DATE_COLOR = "qs_header_stock_clock_date_custom_color";
+
+ public static final String QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP_SWITCH = "qs_header_stock_clock_background_chip_switch";
+ public static final String QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP = "qs_header_stock_clock_background_chip";
+ public static final String QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP_COLOR_MODE = "qs_header_stock_clock_background_chip_color_mode";
+ public static final String QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP_COLOR = "qs_header_stock_clock_background_chip_color";
+ public static final String QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP_SWITCH = "qs_header_stock_date_background_chip_switch";
+ public static final String QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP = "qs_header_stock_date_background_chip";
+ public static final String QS_HEADER_CLOCK_STOCK_HIDE_CARRIER = "qs_header_stock_clock_hide_carrier_label";
+
+ // Font Prefs
+ public static final String QS_HEADER_CLOCK_CUSTOM_FONT = "qs_header_clock_custom_font";
+
+ // Custom Clock Prefs
+ public static final String QS_HEADER_CLOCK_TEXT_SCALING = "qs_header_clock_text_scaling";
+ public static final String QS_HEADER_CLOCK_CUSTOM_COLOR_SWITCH = "qs_header_clock_custom_color_switch";
+ public static final String QS_HEADER_CLOCK_CUSTOM_COLOR = "qs_header_clock_custom_color";
+ public static final String QS_HEADER_CLOCK_TOP_MARGIN = "qs_header_clock_top_margin";
+ public static final String QS_HEADER_CLOCK_LEFT_MARGIN = "qs_header_clock_left_margin";
+ public static final String QS_HEADER_CLOCK_COLOR_CODE_ACCENT1 = "qs_header_clock_color_code_accent1";
+ public static final String QS_HEADER_CLOCK_COLOR_CODE_ACCENT2 = "qs_header_clock_color_code_accent2";
+ public static final String QS_HEADER_CLOCK_COLOR_CODE_ACCENT3 = "qs_header_clock_color_code_accent3";
+ public static final String QS_HEADER_CLOCK_COLOR_CODE_TEXT1 = "qs_header_clock_color_code_text1";
+ public static final String QS_HEADER_CLOCK_COLOR_CODE_TEXT2 = "qs_header_clock_color_code_text2";
+
+ public static String getStyle(String key) {
+ return key + "_STYLE";
+ }
+
+ public static String getUseAccentColor(String key) {
+ return key + "_USE_ACCENT_COLOR";
+ }
+ public static String getUseGradient(String key) {
+ return key + "_USE_GRADIENT";
+ }
+ public static String getGradientNum(String key, int num) {
+ return key + "_GRADIENT_" + num;
+ }
+ public static String getGradientOrientation(String key) {
+ return key + "_GRADIENT_ORIENTATION";
+ }
+ public static String getStrokeWidth(String key) {
+ return key + "_STROKE_WIDTH";
+ }
+ public static String getStrokeColor(String key) {
+ return key + "_STROKE_COLOR";
+ }
+ public static String getRoundedCorners(String key) {
+ return key + "_ROUNDED_CORNERS";
+ }
+ public static String getTopSxR(String key) {
+ return key + "_TOP_LEFT_RADIUS";
+ }
+ public static String getTopDxR(String key) {
+ return key + "_TOP_RIGHT_RADIUS";
+ }
+ public static String getBottomSxR(String key) {
+ return key + "_BOTTOM_LEFT_RADIUS";
+ }
+ public static String getBottomDxR(String key) {
+ return key + "_BOTTOM_RIGHT_RADIUS";
+ }
+
+ public static final String[] QS_HEADER_PREFS = {
+ QS_HEADER_CLOCK_STOCK_RED_MODE,
+ QS_HEADER_CLOCK_STOCK_RED_MODE_COLOR,
+ QS_HEADER_CLOCK_STOCK_TIME_COLOR_SWITCH,
+ QS_HEADER_CLOCK_STOCK_TIME_COLOR,
+ QS_HEADER_CLOCK_STOCK_HIDE_DATE,
+ QS_HEADER_CLOCK_STOCK_DATE_COLOR_SWITCH,
+ QS_HEADER_CLOCK_STOCK_DATE_COLOR,
+ QS_HEADER_CLOCK_STOCK_HIDE_CARRIER,
+ QS_HEADER_CLOCK_CUSTOM_ENABLED,
+ QS_HEADER_CLOCK_CUSTOM_VALUE,
+ QS_HEADER_CLOCK_TEXT_SCALING,
+ QS_HEADER_CLOCK_CUSTOM_COLOR_SWITCH,
+ QS_HEADER_CLOCK_COLOR_CODE_ACCENT1,
+ QS_HEADER_CLOCK_COLOR_CODE_ACCENT2,
+ QS_HEADER_CLOCK_COLOR_CODE_ACCENT3,
+ QS_HEADER_CLOCK_COLOR_CODE_TEXT1,
+ QS_HEADER_CLOCK_COLOR_CODE_TEXT2,
+ QS_HEADER_CLOCK_TOP_MARGIN,
+ QS_HEADER_CLOCK_LEFT_MARGIN,
+ QS_HEADER_CLOCK_CUSTOM_FONT
+ };
+
+ public static final String[] QS_HEADER_CHIP_PREFS = {
+ QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP_SWITCH,
+ QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP,
+ getStyle(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ getUseGradient(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ getGradientNum(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP, 1),
+ getGradientNum(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP, 2),
+ getGradientOrientation(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ getStrokeWidth(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ getRoundedCorners(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ getTopSxR(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ getTopDxR(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ getBottomSxR(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ getBottomDxR(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP),
+ QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP_COLOR_MODE,
+ QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP_COLOR,
+ QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP_SWITCH,
+ QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP,
+ getStyle(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP),
+ getUseGradient(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP),
+ getGradientNum(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP, 1),
+ getGradientNum(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP, 2),
+ getGradientOrientation(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP),
+ getStrokeWidth(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP),
+ getRoundedCorners(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP),
+ getTopSxR(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP),
+ getTopDxR(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP),
+ getBottomSxR(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP),
+ getBottomDxR(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP)
+ };
+ }
+
+ public static class Buttons {
+ public static final String BUTTONS_POWER_LONGPRESS_TORCH = "torch_long_press_power_gesture";
+ public static final String BUTTONS_POWER_LONGPRESS_TORCH_TIMEOUT_SWITCH = "torch_long_press_power_gesture_enable_timeout";
+ public static final String BUTTONS_POWER_LONGPRESS_TORCH_TIMEOUT = "torch_long_press_power_timeout";
+ public static final String BUTTONS_VOLUME_MUSIC = "volbtn_music_controls";
+ }
+
+ public static class Lockscreen {
+ public static final String DISABLE_POWER = "disable_power_on_lockscreen";
+ public static final String LOCKSCREEN_REMOVE_SOS = "hide_sos_lockscreen";
+ public static final String LOCKSCREEN_HIDE_FINGERPRINT = "lockscreen_fp_remove_icon";
+ public static final String LOCKSCREEN_CUSTOM_FINGERPRINT = "lockscreen_fp_custom_icon";
+ public static final String LOCKSCREEN_FINGERPRINT_STYLE = "lockscreen_fp_icon_custom";
+ public static final String LOCKSCREEN_FINGERPRINT_SCALING = "lockscreen_fp_icon_scaling";
+ }
+
+ public static class LockscreenClock {
+ public static final String LOCKSCREEN_CLOCK_SWITCH = "lockscreen_custom_clock_switch";
+ public static final String LOCKSCREEN_CLOCK_STYLE = "lockscreen_custom_clock_style";
+ public static final String LOCKSCREEN_CLOCK_CUSTOM_COLOR_SWITCH = "lockscreen_custom_color_switch";
+ public static final String LOCKSCREEN_CLOCK_CUSTOM_COLOR = "lockscreen_custom_color";
+ public static final String LOCKSCREEN_CLOCK_LINE_HEIGHT = "lockscreen_clock_line_height";
+ public static final String LOCKSCREEN_CLOCK_TOP_MARGIN = "lockscreen_top_margin";
+ public static final String LOCKSCREEN_CLOCK_BOTTOM_MARGIN = "lockscreen_bottom_margin";
+ public static final String LOCKSCREEN_CLOCK_CUSTOM_FONT = "lockscreen_custom_font";
+ public static final String LOCKSCREEN_CLOCK_TEXT_SCALING = "lockscreen_text_scaling";
+ public static final String LOCKSCREEN_STOCK_CLOCK_RED_ONE = "lockscreen_stock_clock_red_one_mode";
+ public static final String LOCKSCREEN_STOCK_CLOCK_RED_ONE_COLOR = "lockscreen_stock_clock_red_one_color";
+ public static final String LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT1 = "lockscreen_clock_color_code_accent1";
+ public static final String LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT2 = "lockscreen_clock_color_code_accent2";
+ public static final String LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT3 = "lockscreen_clock_color_code_accent3";
+ public static final String LOCKSCREEN_CLOCK_COLOR_CODE_TEXT1 = "lockscreen_clock_color_code_text1";
+ public static final String LOCKSCREEN_CLOCK_COLOR_CODE_TEXT2 = "lockscreen_clock_color_code_text2";
+ public static final String LOCKSCREEN_CLOCK_CUSTOM_USER = "lockscreen_clock_custom_user_switch";
+ public static final String LOCKSCREEN_CLOCK_CUSTOM_USER_VALUE = "lockscreen_clock_custom_user";
+ public static final String LOCKSCREEN_CLOCK_CUSTOM_USER_IMAGE = "lockscreen_clock_custom_user_image";
+
+ public static final String[] LOCKSCREEN_CLOCK_PREFS = {
+ LOCKSCREEN_CLOCK_SWITCH,
+ LOCKSCREEN_CLOCK_STYLE,
+ LOCKSCREEN_CLOCK_CUSTOM_COLOR_SWITCH,
+ LOCKSCREEN_CLOCK_CUSTOM_COLOR,
+ LOCKSCREEN_CLOCK_TOP_MARGIN,
+ LOCKSCREEN_CLOCK_BOTTOM_MARGIN,
+ LOCKSCREEN_CLOCK_CUSTOM_FONT,
+ LOCKSCREEN_CLOCK_TEXT_SCALING,
+ LOCKSCREEN_CLOCK_LINE_HEIGHT,
+ LOCKSCREEN_STOCK_CLOCK_RED_ONE,
+ LOCKSCREEN_STOCK_CLOCK_RED_ONE_COLOR,
+ LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT1,
+ LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT2,
+ LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT3,
+ LOCKSCREEN_CLOCK_COLOR_CODE_TEXT1,
+ LOCKSCREEN_CLOCK_COLOR_CODE_TEXT2
+ };
+ }
+
+ public static final String ADAPTIVE_PLAYBACK_ENABLED = "sound_adaptive_playback_main_switch";
+ public static final String ADAPTIVE_PLAYBACK_TIMEOUT = "adaptive_playback_timeout";
+ }
+
+ public static class LockscreenWeather {
+ public static final String LOCKSCREEN_WEATHER_SWITCH = "lockscreen_weather_enabled";
+ public static final String LOCKSCREEN_WEATHER_UPDATE_INTERVAL = "weather_update_interval";
+ public static final String LOCKSCREEN_WEATHER_PROVIDER = "weather_provider";
+ public static final String LOCKSCREEN_WEATHER_OWM_KEY = "owm_key";
+ public static final String LOCKSCREEN_WEATHER_UNITS = "weather_units";
+ public static final String LOCKSCREEN_WEATHER_CUSTOM_LOCATION = "weather_custom_location_switch";
+ public static final String LOCKSCREEN_WEATHER_ICON_PACK = "weather_icon_pack";
+ public static final String LOCKSCREEN_WEATHER_TEXT_SIZE = "weather_text_size";
+ public static final String LOCKSCREEN_WEATHER_IMAGE_SIZE = "weather_image_size";
+ public static final String LOCKSCREEN_WEATHER_SHOW_LOCATION = "weather_show_location";
+ public static final String LOCKSCREEN_WEATHER_SHOW_CONDITION = "weather_show_condition";
+ public static final String LOCKSCREEN_WEATHER_HUMIDITY = "weather_show_humidity";
+ public static final String LOCKSCREEN_WEATHER_WIND = "weather_show_wind";
+ public static final String LOCKSCREEN_WEATHER_CUSTOM_COLOR_SWITCH = "weather_custom_color_switch";
+ public static final String LOCKSCREEN_WEATHER_CUSTOM_COLOR = "weather_custom_color";
+
+ public static final String[] LOCKSCREEN_WEATHER_PREFS = {
+ LOCKSCREEN_WEATHER_SWITCH,
+ LOCKSCREEN_WEATHER_UPDATE_INTERVAL,
+ LOCKSCREEN_WEATHER_PROVIDER,
+ LOCKSCREEN_WEATHER_OWM_KEY,
+ LOCKSCREEN_WEATHER_UNITS,
+ LOCKSCREEN_WEATHER_CUSTOM_LOCATION,
+ LOCKSCREEN_WEATHER_ICON_PACK,
+ LOCKSCREEN_WEATHER_TEXT_SIZE,
+ LOCKSCREEN_WEATHER_IMAGE_SIZE,
+ LOCKSCREEN_WEATHER_HUMIDITY,
+ LOCKSCREEN_WEATHER_WIND,
+ LOCKSCREEN_WEATHER_SHOW_LOCATION,
+ LOCKSCREEN_WEATHER_SHOW_CONDITION,
+ LOCKSCREEN_WEATHER_CUSTOM_COLOR_SWITCH,
+ LOCKSCREEN_WEATHER_CUSTOM_COLOR
+ };
+
+ }
+
+ public static final class SoundPrefs {
+ public static final String PULSE_NAVBAR = "navbar_pulse_enabled";
+ public static final String PULSE_LOCKSCREEN = "lockscreen_pulse_enabled";
+ public static final String PULSE_AMBIENT = "ambient_pulse_enabled";
+ public static final String PULSE_RENDER_STYLE = "pulse_render_style";
+ public static final String PULSE_SMOOTHING = "pulse_smoothing_enabled";
+ public static final String PULSE_COLOR_MODE = "pulse_color_mode";
+ public static final String PULSE_COLOR_USER = "pulse_color_user";
+ public static final String PULSE_LAVA_SPEED = "pulse_lavalamp_speed";
+
+ // Fading Blocks
+ public static final String PULSE_EMPTY_BLOCK_SIZE = "pulse_empty_block_size";
+ public static final String PULSE_CUSTOM_DIMEN = "pulse_custom_dimen";
+ public static final String PULSE_CUSTOM_DIV = "pulse_custom_div";
+ public static final String PULSE_FILLED_BLOCK_SIZE = "pulse_filled_block_size";
+ public static final String PULSE_FUDGE_FACTOR = "pulse_custom_fudge_factor";
+
+ // Solid Blocks
+ public static final String PULSE_SOLID_UNITS_ROUNDED = "pulse_solid_units_rounded";
+ public static final String PULSE_SOLID_UNITS_OPACITY = "pulse_solid_units_opacity";
+ public static final String PULSE_SOLID_UNITS_COUNT = "pulse_solid_units_count";
+ public static final String PULSE_SOLID_FUDGE_FACTOR = "pulse_solid_fudge_factor";
+
+ public static final String[] PULSE_PREFS = {
+ PULSE_NAVBAR,
+ PULSE_LOCKSCREEN,
+ PULSE_AMBIENT,
+ PULSE_RENDER_STYLE,
+ PULSE_SMOOTHING,
+ PULSE_COLOR_MODE,
+ PULSE_COLOR_USER,
+ PULSE_LAVA_SPEED,
+ PULSE_EMPTY_BLOCK_SIZE,
+ PULSE_CUSTOM_DIMEN,
+ PULSE_CUSTOM_DIV,
+ PULSE_FILLED_BLOCK_SIZE,
+ PULSE_FUDGE_FACTOR,
+ PULSE_SOLID_UNITS_ROUNDED,
+ PULSE_SOLID_UNITS_OPACITY,
+ PULSE_SOLID_UNITS_COUNT,
+ PULSE_SOLID_FUDGE_FACTOR
+ };
+ }
+
+ public static final String ACTION_XPOSED_CONFIRMED = BuildConfig.APPLICATION_ID + ".ACTION_XPOSED_CONFIRMED_OC";
+ public static final String ACTION_XPOSED_NOT_FOUND = BuildConfig.APPLICATION_ID + ".ACTION_XPOSED_NOT_FOUND_OC";
+ public static final String ACTION_CHECK_XPOSED_ENABLED = BuildConfig.APPLICATION_ID + ".ACTION_CHECK_XPOSED_ENABLED_OC";
+ public static final String ACTION_CLEAR_ALL_TASKS = BuildConfig.APPLICATION_ID + ".ACTION_CLEAR_ALL_TASKS_OC";
+ public static final String ACTION_POWER_MENU = BuildConfig.APPLICATION_ID + ".ACTION_POWER_MENU_OC";
+ public static final String ACTION_AUTH_SUCCESS_SHOW_ADVANCED_REBOOT = BuildConfig.APPLICATION_ID + ".ACTION_AUTH_SUCCESS_SHOW_ADVANCED_REBOOT_OC";
+
+ public static final String ACTION_MAX_CHANGED = BuildConfig.APPLICATION_ID + ".ACTION_MAX_CHANGED_OC";
+
+ public static final String XPOSED_RESOURCE_TEMP_DIR = Environment.getExternalStorageDirectory() + "/.oxygen_customizer";
+ public static final String HEADER_IMAGE_DIR = XPOSED_RESOURCE_TEMP_DIR + "/header_image.png";
+ public static final String HEADER_CLOCK_FONT_DIR = XPOSED_RESOURCE_TEMP_DIR + "/header_clock_font.ttf";
+ public static final String LOCKSCREEN_CLOCK_FONT_DIR = XPOSED_RESOURCE_TEMP_DIR + "/lockscreen_clock_font.ttf";
+ public static final String LOCKSCREEN_USER_IMAGE = XPOSED_RESOURCE_TEMP_DIR + "/lockscreen_user_image.png";
+ public static final String LOCKSCREEN_FINGERPRINT_FILE = XPOSED_RESOURCE_TEMP_DIR + "/lockscreen_fp_icon.png";
+
+ // View Tags
+ public static final String MEDIA_PROGRESSBAR = "media_progressbar";
+ public static final String MEDIA_PROGRESSBAR_VALUE = "media_progress_value";
+ public static final String BATTERY_PROGRESSBAR = "battery_progressbar";
+ public static final String BATTERY_PROGRESSBAR_VALUE = "battery_progress_value";
+
+ // Resource names
+ public static final String LOCKSCREEN_CLOCK_LAYOUT = "preview_lockscreen_clock_";
+ public static final String HEADER_CLOCK_LAYOUT = "preview_header_clock_";
+
+ public static final String CLOCK_TAG = "clock";
+ public static final String DATE_TAG = "date";
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/FileUtil.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/FileUtil.java
new file mode 100644
index 000000000..b72e81ef5
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/FileUtil.java
@@ -0,0 +1,143 @@
+package it.dhd.oxygencustomizer.utils;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.OpenableColumns;
+
+import androidx.activity.result.ActivityResultLauncher;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+import it.dhd.oxygencustomizer.OxygenCustomizer;
+import it.dhd.oxygencustomizer.xposed.utils.ShellUtils;
+
+public class FileUtil {
+
+ public static final String DATA_DIR = OxygenCustomizer.getAppContext().getFilesDir().toString();
+
+ public static void copyAssets(String assetFolder) throws IOException {
+ cleanDir(assetFolder);
+ createDir(assetFolder);
+ copyFileOrDirectory(OxygenCustomizer.getAppContext(), assetFolder, DATA_DIR + "/" + assetFolder);
+ }
+
+ public static void cleanDir(String dirName) {
+ ShellUtils.execCommand("rm -rf " + DATA_DIR + "/" + dirName, false);
+ }
+
+ private static void createDir(String dirName) {
+ File new_folder = new File(DATA_DIR + "/" + dirName + "/");
+ new_folder.mkdirs();
+ }
+
+ private static void copyFileOrDirectory(Context context, String dirName, String outPath) throws IOException {
+ String[] srcFiles = context.getAssets().list(dirName);
+ if (srcFiles == null) return;
+
+ for (String srcFileName : srcFiles) {
+ String outFileName = outPath + File.separator + srcFileName;
+ String inFileName = dirName + File.separator + srcFileName;
+ if (dirName.equals("")) {
+ inFileName = srcFileName;
+ }
+ try {
+ InputStream inputStream = context.getAssets().open(inFileName);
+ copyAndClose(inputStream, Files.newOutputStream(Paths.get(outFileName)));
+ } catch (IOException e) {
+ new File(outFileName).mkdir();
+ copyFileOrDirectory(context, inFileName, outFileName);
+ }
+ }
+ }
+
+ public static void closeQuietly(AutoCloseable autoCloseable) {
+ try {
+ if (autoCloseable != null) {
+ autoCloseable.close();
+ }
+ } catch (Exception ignored) {
+ }
+ }
+
+ public static void copyAndClose(InputStream input, OutputStream output) throws IOException {
+ copy(input, output);
+ closeQuietly(input);
+ closeQuietly(output);
+ }
+
+ public static void copy(InputStream input, OutputStream output) throws IOException {
+ byte[] buffer = new byte[1024];
+ int n = 0;
+ while (-1 != (n = input.read(buffer))) {
+ output.write(buffer, 0, n);
+ }
+ }
+
+ public static String getRealPath(Object obj) {
+ if (obj instanceof Intent) {
+ return getRealPathFromURI(((Intent) obj).getData());
+ } else if (obj instanceof Uri) {
+ return getRealPathFromURI((Uri) obj);
+ } else {
+ throw new IllegalArgumentException("Object must be an Intent or Uri");
+ }
+ }
+
+ private static String getRealPathFromURI(Uri uri) {
+ File file;
+ try {
+ @SuppressLint("Recycle") Cursor returnCursor = OxygenCustomizer.getAppContext().getContentResolver().query(uri, null, null, null, null);
+
+ if (returnCursor == null) return null;
+
+ int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
+ returnCursor.moveToFirst();
+ String name = returnCursor.getString(nameIndex);
+ file = new File(OxygenCustomizer.getAppContext().getFilesDir(), name);
+ @SuppressLint("Recycle") InputStream inputStream = OxygenCustomizer.getAppContext().getContentResolver().openInputStream(uri);
+ FileOutputStream outputStream = new FileOutputStream(file);
+ int read;
+ int maxBufferSize = 1024 * 1024;
+
+ if (inputStream == null) return null;
+
+ int bytesAvailable = inputStream.available();
+ int bufferSize = Math.min(bytesAvailable, maxBufferSize);
+ final byte[] buffers = new byte[bufferSize];
+ while ((read = inputStream.read(buffers)) != -1) {
+ outputStream.write(buffers, 0, read);
+ }
+ inputStream.close();
+ outputStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ return file.getPath();
+ }
+
+ public static boolean moveToOCHiddenDir(String source, String destination) {
+ return ShellUtils.execCommand(
+ new String[]{
+ "mkdir -p " + Constants.XPOSED_RESOURCE_TEMP_DIR,
+ "rm -f \"" + destination + "\"",
+ "mv -f \"" + source + "\" \"" + destination + "\""}
+ , true).result == 0;
+ }
+
+ public static void launchFilePicker(ActivityResultLauncher launcher, String type) {
+ Intent chooseFile = new Intent(Intent.ACTION_GET_CONTENT);
+ chooseFile.addCategory(Intent.CATEGORY_OPENABLE);
+ chooseFile.setType(type);
+ launcher.launch(chooseFile);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/HeaderUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/HeaderUtils.java
new file mode 100644
index 000000000..77ad947e8
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/HeaderUtils.java
@@ -0,0 +1,152 @@
+package it.dhd.oxygencustomizer.utils;
+
+/*
+ * Copyright (C) 2017 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+import android.content.res.Resources;
+import android.content.res.XmlResourceParser;
+import android.util.Log;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+public class HeaderUtils {
+ private static final boolean DEBUG = false;
+ private static final String TAG = "BrowseHeaderActivity";
+
+ public static class DaylightHeaderInfo {
+ public int mType = 0;
+ public int mHour = -1;
+ public int mDay = -1;
+ public int mMonth = -1;
+ public String mImage;
+ public String mName;
+ }
+
+ public static String loadHeaders(Resources res, String headerName, List headersList) throws XmlPullParserException, IOException {
+ headersList.clear();
+ String creatorName = null;
+ InputStream in = null;
+ XmlPullParser parser = null;
+
+ try {
+ if (headerName == null) {
+ if (DEBUG) Log.i(TAG, "Load header pack config daylight_header.xml");
+ in = res.getAssets().open("daylight_header.xml");
+ } else {
+ int idx = headerName.lastIndexOf(".");
+ String headerConfigFile = headerName.substring(idx + 1) + ".xml";
+ if (DEBUG) Log.i(TAG, "Load header pack config " + headerConfigFile);
+ in = res.getAssets().open(headerConfigFile);
+ }
+ XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
+ parser = factory.newPullParser();
+ parser.setInput(in, "UTF-8");
+ creatorName = loadResourcesFromXmlParser(parser, headersList);
+ } finally {
+ // Cleanup resources
+ if (parser instanceof XmlResourceParser) {
+ ((XmlResourceParser) parser).close();
+ }
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException ignored) {
+ }
+ }
+ }
+ return creatorName;
+ }
+
+ private static String loadResourcesFromXmlParser(XmlPullParser parser, List headersList) throws XmlPullParserException, IOException {
+ int eventType = parser.getEventType();
+ String creatorName = null;
+ do {
+ if (eventType != XmlPullParser.START_TAG) {
+ continue;
+ }
+ String name = parser.getName();
+ if (name.equalsIgnoreCase("day_header")) {
+ DaylightHeaderInfo headerInfo = new DaylightHeaderInfo();
+ headerInfo.mType = 0;
+ String day = parser.getAttributeValue(null, "day");
+ if (day != null) {
+ headerInfo.mDay = Integer.parseInt(day);
+ }
+ String month = parser.getAttributeValue(null, "month");
+ if (month != null) {
+ headerInfo.mMonth = Integer.parseInt(month);
+ }
+ String image = parser.getAttributeValue(null, "image");
+ if (image != null) {
+ headerInfo.mImage = image;
+ }
+ String imageName = parser.getAttributeValue(null, "name");
+ if (imageName != null) {
+ headerInfo.mName = imageName;
+ }
+ if (headerInfo.mImage != null && headerInfo.mDay != -1 && headerInfo.mMonth != -1) {
+ headersList.add(headerInfo);
+ }
+ } else if (name.equalsIgnoreCase("hour_header")) {
+ DaylightHeaderInfo headerInfo = new DaylightHeaderInfo();
+ headerInfo.mType = 1;
+ String hour = parser.getAttributeValue(null, "hour");
+ if (hour != null) {
+ headerInfo.mHour = Integer.parseInt(hour);
+ }
+ String image = parser.getAttributeValue(null, "image");
+ if (image != null) {
+ headerInfo.mImage = image;
+ }
+ String imageName = parser.getAttributeValue(null, "name");
+ if (imageName != null) {
+ headerInfo.mName = imageName;
+ }
+ if (headerInfo.mImage != null && headerInfo.mHour != -1) {
+ headersList.add(headerInfo);
+ }
+ } else if (name.equalsIgnoreCase("random_header") ||
+ name.equalsIgnoreCase("list_header")) {
+ DaylightHeaderInfo headerInfo = new DaylightHeaderInfo();
+ headerInfo.mType = 2;
+ String image = parser.getAttributeValue(null, "image");
+ if (image != null) {
+ headerInfo.mImage = image;
+ }
+ String imageName = parser.getAttributeValue(null, "name");
+ if (imageName != null) {
+ headerInfo.mName = imageName;
+ }
+ if (headerInfo.mImage != null) {
+ headersList.add(headerInfo);
+ }
+ } else if (name.equalsIgnoreCase("meta_data")) {
+ creatorName = parser.getAttributeValue(null, "creator");
+ if (DEBUG) Log.i(TAG, "creator = " + creatorName);
+ }
+ } while ((eventType = parser.next()) != XmlPullParser.END_DOCUMENT);
+ if (DEBUG) Log.i(TAG, "loaded size = " + headersList.size());
+ return creatorName;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/NetworkUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/NetworkUtils.java
new file mode 100644
index 000000000..5a935e61d
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/NetworkUtils.java
@@ -0,0 +1,141 @@
+package it.dhd.oxygencustomizer.utils;
+
+/*
+ * Copyright (C) 2018 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+import android.util.Log;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+
+import javax.net.ssl.HttpsURLConnection;
+
+public class NetworkUtils {
+ private static final boolean DEBUG = false;
+ private static final String TAG = "NetworkUtils";
+
+ private static final int HTTP_READ_TIMEOUT = 60000;
+ private static final int HTTP_CONNECTION_TIMEOUT = 60000;
+
+ public static HttpsURLConnection setupHttpsRequest(String urlStr) {
+ URL url;
+ HttpsURLConnection urlConnection = null;
+ try {
+ url = new URL(urlStr);
+ urlConnection = (HttpsURLConnection) url.openConnection();
+ urlConnection.setConnectTimeout(HTTP_CONNECTION_TIMEOUT);
+ urlConnection.setReadTimeout(HTTP_READ_TIMEOUT);
+ urlConnection.setRequestMethod("GET");
+ urlConnection.setDoInput(true);
+ urlConnection.connect();
+ int code = urlConnection.getResponseCode();
+ if (code != HttpsURLConnection.HTTP_OK) {
+ Log.d(TAG, "response:" + code);
+ return null;
+ }
+ return urlConnection;
+ } catch (Exception e) {
+ Log.e(TAG, "Failed to connect to server", e);
+ return null;
+ }
+ }
+
+ public static boolean downloadUrlFile(String url, File f) {
+ if (DEBUG) Log.d(TAG, "download:" + url);
+
+ HttpsURLConnection urlConnection = null;
+
+ if (f.exists())
+ f.delete();
+
+ try {
+ urlConnection = setupHttpsRequest(url);
+ if (urlConnection == null) {
+ return false;
+ }
+ long len = urlConnection.getContentLength();
+ if ((len > 0) && (len < 4L * 1024L * 1024L * 1024L)) {
+ byte[] buffer = new byte[262144];
+
+ InputStream is = urlConnection.getInputStream();
+ FileOutputStream os = new FileOutputStream(f, false);
+ try {
+ int r;
+ while ((r = is.read(buffer)) > 0) {
+ os.write(buffer, 0, r);
+ }
+ } finally {
+ os.close();
+ }
+
+ return true;
+ }
+ return false;
+ } catch (Exception e) {
+ // Download failed for any number of reasons, timeouts, connection
+ // drops, etc. Just log it in debugging mode.
+ Log.e(TAG, "", e);
+ return false;
+ } finally {
+ if (urlConnection != null) {
+ urlConnection.disconnect();
+ }
+ }
+ }
+
+ public static String downloadUrlMemoryAsString(String url) {
+ if (DEBUG) Log.d(TAG, "download: " + url);
+
+ HttpsURLConnection urlConnection = null;
+ try {
+ urlConnection = setupHttpsRequest(url);
+ if (urlConnection == null) {
+ return null;
+ }
+
+ InputStream is = urlConnection.getInputStream();
+ ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
+ int byteInt;
+
+ while ((byteInt = is.read()) >= 0) {
+ byteArray.write(byteInt);
+ }
+
+ byte[] bytes = byteArray.toByteArray();
+ if (bytes == null) {
+ return null;
+ }
+ String responseBody = new String(bytes, StandardCharsets.UTF_8);
+
+ return responseBody;
+ } catch (Exception e) {
+ // Download failed for any number of reasons, timeouts, connection
+ // drops, etc. Just log it in debugging mode.
+ Log.e(TAG, "", e);
+ return null;
+ } finally {
+ if (urlConnection != null) {
+ urlConnection.disconnect();
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/PrefManager.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/PrefManager.java
new file mode 100644
index 000000000..0629e14db
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/PrefManager.java
@@ -0,0 +1,79 @@
+package it.dhd.oxygencustomizer.utils;
+
+import android.content.SharedPreferences;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.Map;
+import java.util.Set;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+
+/**
+ * Credits
+ * Siavash79/PixelXpert
+ */
+
+public class PrefManager {
+ private static final String TAG = "Pref Exporter";
+
+ @SuppressWarnings("UnusedReturnValue")
+ public static boolean exportPrefs(SharedPreferences preferences, final @NonNull OutputStream outputStream) throws IOException {
+ try (outputStream; ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream)) {
+ objectOutputStream.writeObject(preferences.getAll());
+ } catch (IOException e) {
+ Log.e(TAG, "Error serializing preferences", BuildConfig.DEBUG ? e : null);
+ return false;
+ }
+ return true;
+ }
+
+ @SuppressWarnings("UnusedReturnValue")
+ public static boolean importPath(SharedPreferences sharedPreferences, final @NonNull InputStream inputStream) throws IOException {
+ ObjectInputStream objectInputStream = null;
+ Map map;
+ try {
+ objectInputStream = new ObjectInputStream(inputStream);
+ map = (Map) objectInputStream.readObject();
+ } catch (Exception e) {
+ Log.e(TAG, "Error deserializing preferences", BuildConfig.DEBUG ? e : null);
+ return false;
+ } finally {
+ objectInputStream.close();
+ inputStream.close();
+ }
+
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.clear();
+
+ for (Map.Entry e : map.entrySet()) {
+ // Unfortunately, the editor only provides typed setters
+ if (e.getValue() instanceof Boolean) {
+ editor.putBoolean(e.getKey(), (Boolean) e.getValue());
+ } else if (e.getValue() instanceof String) {
+ editor.putString(e.getKey(), (String) e.getValue());
+ } else if (e.getValue() instanceof Integer) {
+ editor.putInt(e.getKey(), (int) e.getValue());
+ } else if (e.getValue() instanceof Float) {
+ editor.putFloat(e.getKey(), (float) e.getValue());
+ } else if (e.getValue() instanceof Long) {
+ editor.putLong(e.getKey(), (Long) e.getValue());
+ } else if (e.getValue() instanceof Set) {
+ editor.putStringSet(e.getKey(), (Set) e.getValue());
+ } else {
+ throw new IllegalArgumentException("Type " + e.getValue().getClass().getName() + " is unknown");
+ }
+ }
+ return editor.commit();
+ }
+
+ public static void clearPrefs(SharedPreferences preferences) {
+ preferences.edit().clear().commit();
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/PreferenceHelper.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/PreferenceHelper.java
new file mode 100644
index 000000000..ed65abf88
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/PreferenceHelper.java
@@ -0,0 +1,628 @@
+package it.dhd.oxygencustomizer.utils;
+
+import static it.dhd.oxygencustomizer.OxygenCustomizer.getAppContext;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_CUSTOM_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_CUSTOM_COLOR_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_CUSTOM_LOCATION;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_HUMIDITY;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_ICON_PACK;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_IMAGE_SIZE;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_OWM_KEY;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_PROVIDER;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_SHOW_CONDITION;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_SHOW_LOCATION;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_TEXT_SIZE;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_UNITS;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_UPDATE_INTERVAL;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_WIND;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_CIRCLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DEFAULT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DEFAULT_LANDSCAPE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DEFAULT_RLANDSCAPE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DOTTED_CIRCLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYI;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYJ;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYL;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYM;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_IOS_16;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BatteryPrefs;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOMIZE_BATTERY_ICON;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_BLEND_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_CHARGING_ICON_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_HIDE_PERCENTAGE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.Lockscreen.LOCKSCREEN_FINGERPRINT_SCALING;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_BOTTOM_MARGIN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_LINE_HEIGHT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_TEXT_SCALING;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_TOP_MARGIN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_CUSTOM_ENABLED;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_HIDE_DATE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_RED_MODE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_RED_MODE_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_TEXT_SCALING;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderImage.QS_HEADER_IMAGE_BOTTOM_FADE;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
+
+import java.lang.reflect.Field;
+import java.util.Collections;
+import java.util.List;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.customprefs.SliderPreference;
+import it.dhd.oxygencustomizer.xposed.utils.ExtendedSharedPreferences;
+
+public class PreferenceHelper {
+ public static boolean showOverlays, showFonts;
+
+ public final ExtendedSharedPreferences mPreferences;
+
+ public static PreferenceHelper instance;
+
+ public static void init(ExtendedSharedPreferences prefs) {
+ new PreferenceHelper(prefs);
+ }
+
+ private PreferenceHelper(ExtendedSharedPreferences prefs) {
+ mPreferences = prefs;
+
+ instance = this;
+ }
+
+ public static SharedPreferences getModulePrefs() {
+ if (instance != null) return instance.mPreferences;
+ return null;
+ }
+
+ public static boolean isVisible(String key) {
+ if (instance == null) return true;
+
+ switch (key) {
+ // Status Bar Prefs
+ // Battery Bar
+ case "batteryFastChargingColor",
+ "batteryChargingColor",
+ "batteryWarningColor",
+ "batteryCriticalColor",
+ "batteryPowerSaveColor" -> {
+
+ boolean critZero = false, warnZero = false;
+ List BBarLevels = instance.mPreferences.getSliderValues("batteryWarningRange", 0);
+
+ if (!BBarLevels.isEmpty()) {
+ critZero = BBarLevels.get(0) == 0;
+ warnZero = BBarLevels.get(1) == 0;
+ }
+ boolean bBarEnabled = instance.mPreferences.getBoolean("BBarEnabled", false);
+ boolean transitColors = instance.mPreferences.getBoolean("BBarTransitColors", false);
+
+ return switch (key) {
+ case "batteryFastChargingColor" ->
+ instance.mPreferences.getBoolean("indicateFastCharging", false) && bBarEnabled;
+ case "batteryChargingColor" ->
+ instance.mPreferences.getBoolean("indicateCharging", false) && bBarEnabled;
+ case "batteryPowerSaveColor" ->
+ instance.mPreferences.getBoolean("indicatePowerSave", false) && bBarEnabled;
+ case "batteryWarningColor" -> !warnZero && bBarEnabled;
+ default -> //batteryCriticalColor
+ (!critZero || transitColors) && bBarEnabled && !warnZero;
+ };
+ }
+ case "BBarTransitColors",
+ "BBarColorful",
+ "BBOnlyWhileCharging",
+ "BBOnBottom",
+ "BBOpacity",
+ "BBarHeight",
+ "BBSetCentered",
+ "indicateCharging",
+ "indicateFastCharging",
+ "indicatePowerSave",
+ "batteryWarningRange" -> {
+ return instance.mPreferences.getBoolean("BBarEnabled", false);
+ }
+ // Launcher Prefs
+ case "folder_rows", "folder_columns", "rearrange_preview" -> {
+ return instance.mPreferences.getBoolean("rearrange_folder", false);
+ }
+ case "drawer_columns" -> {
+ return instance.mPreferences.getBoolean("rearrange_drawer", false);
+ }
+
+ // Statusbar Prefs
+ case "statusbar_top_padding", "statusbarPaddings" -> {
+ return instance.mPreferences.getBoolean("statusbar_padding_enabled", false);
+ }
+ case "status_bar_clock_color" -> {
+ return instance.mPreferences.getBoolean("status_bar_custom_clock_color", false);
+ }
+
+ // Clock & date
+ case "status_bar_clock_auto_hide_hduration", "status_bar_clock_auto_hide_sduration" -> {
+ return instance.mPreferences.getBoolean("status_bar_clock_auto_hide", false);
+ }
+ case "status_bar_clock_date_position", "status_bar_clock_date_style", "status_bar_clock_date_format" -> {
+ return !instance.mPreferences.getString("status_bar_clock_date_display", "0").equals("0");
+ }
+ case "status_bar_clock_background_chip" -> {
+ return instance.mPreferences.getBoolean("status_bar_clock_background_chip_switch", false);
+ }
+
+ // Battery Icon
+ case "battery_icon_style",
+ "category_battery_icon_settings",
+ "battery_hide_percentage",
+ "battery_inside_percentage",
+ "battery_hide_battery",
+ "battery_reverse_layout",
+ "battery_rotate_layout",
+ "category_battery_colors",
+ "battery_perimeter_alpha",
+ "battery_fill_alpha",
+ "battery_rainbow_color",
+ "battery_blend_color",
+ "battery_fill_color",
+ "battery_fill_gradient_color",
+ "battery_charging_fill_color",
+ "battery_fast_charging_fill_color",
+ "battery_powersave_fill_color",
+ "battery_powersave_icon_color",
+ "category_battery_margins",
+ "category_battery_charging_icon" -> {
+ return isVisibleBattery(key);
+ }
+ case "category_battery_stock_prefs" -> {
+ return !instance.mPreferences.getBoolean(CUSTOMIZE_BATTERY_ICON, false);
+ }
+ // Battery Icon Dimensions
+ case "battery_margin_left", "battery_margin_right", "battery_margin_top", "battery_margin_bottom" -> {
+ return instance.mPreferences.getBoolean("battery_custom_dimensions", false);
+ }
+
+ // QuickSettings Prefs
+ case "quick_pulldown_side", "quick_pulldown_length" -> {
+ return instance.mPreferences.getBoolean("quick_pulldown", false);
+ }
+
+ // Qs Tiles
+ case "quick_settings_quick_tiles",
+ "qs_tile_potrait",
+ "qs_tile_landscape" -> {
+ return instance.mPreferences.getBoolean("quick_settings_tiles_customize", false);
+ }
+
+ // Qs Appearance
+ case "qs_tile_active_color" -> {
+ return instance.mPreferences.getBoolean("qs_tile_active_color_enabled", false);
+ }
+ case "qs_tile_inactive_color" -> {
+ return instance.mPreferences.getBoolean("qs_tile_inactive_color_enabled", false);
+ }
+ case "qs_tile_disabled_color" -> {
+ return instance.mPreferences.getBoolean("qs_tile_disabled_color_enabled", false);
+ }
+ case "brightness_slider_progress_color_mode" -> {
+ return instance.mPreferences.getBoolean("customize_brightness_slider", false);
+ }
+ case "brightness_slider_color" -> {
+ return instance.mPreferences.getBoolean("customize_brightness_slider", false) &&
+ instance.mPreferences.getString("brightness_slider_progress_color_mode", "0").equals("2");
+ }
+ case "brightness_slider_background_color" -> {
+ return instance.mPreferences.getBoolean("brightness_slider_background_color_enabled", false);
+ }
+
+ // Gesture Prefs
+ case "gesture_left_height" -> {
+ return instance.mPreferences.getBoolean("gesture_left", false);
+ }
+ case "gesture_right_height" -> {
+ return instance.mPreferences.getBoolean("gesture_right", false);
+ }
+ case "gesture_override_holdback_left", "gesture_override_holdback_mode" -> {
+ return instance.mPreferences.getBoolean("gesture_override_holdback", false);
+ }
+ case "gesture_override_holdback_right" -> {
+ String mode = instance.mPreferences.getString("gesture_override_holdback_mode", "0");
+ return mode.equals("1") && instance.mPreferences.getBoolean("gesture_override_holdback", false);
+ }
+
+ // Header Image
+ case "qs_header_image_tint_custom" -> {
+ return instance.mPreferences.getString("qs_header_image_tint", "0").equals("4");
+ }
+ case "qs_header_image_tint_intensity" -> {
+ return !instance.mPreferences.getString("qs_header_image_tint", "0").equals("0");
+ }
+
+ // Header Clock
+ case "qs_header_stock_clock_prefs" -> {
+ return !instance.mPreferences.getBoolean("qs_header_clock_custom_enabled", false);
+ }
+ case "qs_header_stock_clock_date_custom_color_switch" -> {
+ return !instance.mPreferences.getBoolean("qs_header_stock_clock_date_hide", false);
+ }
+ case "qs_header_clock_custom",
+ "qs_header_clock_prefs", "qs_header_clock_custom_margins" -> {
+ return instance.mPreferences.getBoolean("qs_header_clock_custom_enabled", false);
+ }
+ case QS_HEADER_CLOCK_STOCK_RED_MODE_COLOR -> {
+ return instance.mPreferences.getString(QS_HEADER_CLOCK_STOCK_RED_MODE, "0").equals("3");
+ }
+ case "qs_header_stock_clock_custom_color" -> {
+ return instance.mPreferences.getBoolean("qs_header_stock_clock_custom_color_switch", false);
+ }
+ case "qs_header_stock_clock_date_custom_color" -> {
+ return instance.mPreferences.getBoolean("qs_header_stock_clock_date_custom_color_switch", false) &&
+ !instance.mPreferences.getBoolean("qs_header_stock_clock_date_hide", false);
+ }
+ case "qs_header_clock_font_custom" -> {
+ return instance.mPreferences.getBoolean("qs_header_clock_custom_font", false);
+ }
+ case "qs_header_clock_color_code_accent1",
+ "qs_header_clock_color_code_accent2",
+ "qs_header_clock_color_code_accent3",
+ "qs_header_clock_color_code_text1",
+ "qs_header_clock_color_code_text2" -> {
+ return instance.mPreferences.getBoolean("qs_header_clock_custom_color_switch", false);
+ }
+ case "qs_header_clock_custom_user_switch",
+ "qs_header_clock_custom_user_image" -> {
+ return instance.mPreferences.getInt("qs_header_custom_clock_style", 0) == 6;
+ }
+ case "qs_header_clock_custom_user" -> {
+ return isVisible("qs_header_clock_custom_user_switch") && instance.mPreferences.getBoolean("qs_header_clock_custom_user_switch", false);
+ }
+ case "qs_header_clock_custom_user_image_picker" -> {
+ return isVisible("qs_header_clock_custom_user_image") && instance.mPreferences.getBoolean("qs_header_clock_custom_user_image", false);
+ }
+ case "qs_header_stock_clock_background_chip" -> {
+ return instance.mPreferences.getBoolean("qs_header_stock_clock_background_chip_switch", false);
+ }
+ case "qs_header_stock_date_background_chip_switch" -> {
+ return !instance.mPreferences.getBoolean(QS_HEADER_CLOCK_STOCK_HIDE_DATE, false);
+ }
+ case "qs_header_stock_date_background_chip" -> {
+ return !instance.mPreferences.getBoolean(QS_HEADER_CLOCK_STOCK_HIDE_DATE, false) && instance.mPreferences.getBoolean("qs_header_stock_date_background_chip_switch", false);
+ }
+
+ // Pulse Prefs
+ case "pulse_color_user" -> {
+ return instance.mPreferences.getString("pulse_color_mode", "2").equals("1");
+ }
+
+ // Lockscreen Prefs
+ case "lockscreen_fp_icon_custom",
+ "lockscreen_fp_icon_picker",
+ LOCKSCREEN_FINGERPRINT_SCALING -> {
+ return instance.mPreferences.getBoolean("lockscreen_fp_custom_icon", false);
+ }
+
+ // Lockscreen Clock
+ case "lockscreen_clock_custom", "lockscreen_clock_prefs", "lockscreen_clock_custom_margins", "lockscreen_clock_font_prefs" -> {
+ return instance.mPreferences.getBoolean(LOCKSCREEN_CLOCK_SWITCH, false);
+ }
+ case "lockscreen_clock_color_code_accent1",
+ "lockscreen_clock_color_code_accent2",
+ "lockscreen_clock_color_code_accent3",
+ "lockscreen_clock_color_code_text1",
+ "lockscreen_clock_color_code_text2" -> {
+ return instance.mPreferences.getBoolean("lockscreen_custom_color_switch", false);
+ }
+ case "lockscreen_clock_custom_user_switch",
+ "lockscreen_clock_custom_user_image" -> {
+ return instance.mPreferences.getInt("lockscreen_custom_clock_style", 0) == 7;
+ }
+ case "lockscreen_clock_custom_user" -> {
+ return isVisible("lockscreen_clock_custom_user_switch") && instance.mPreferences.getBoolean("lockscreen_clock_custom_user_switch", false);
+ }
+ case "lockscreen_clock_custom_user_image_picker" -> {
+ return isVisible("lockscreen_clock_custom_user_image") && instance.mPreferences.getBoolean("lockscreen_clock_custom_user_image", false);
+ }
+ case "lockscreen_clock_stock_prefs" -> {
+ return !instance.mPreferences.getBoolean(LOCKSCREEN_CLOCK_SWITCH, false);
+ }
+ case "lockscreen_stock_clock_red_one_color" -> {
+ return Integer.parseInt(instance.mPreferences.getString("lockscreen_stock_clock_red_one_mode", "0")) == 3;
+ }
+ case "lockscreen_clock_font_custom" -> {
+ return instance.mPreferences.getBoolean("lockscreen_custom_font", false);
+ }
+
+ // Lockscreen Weather
+ case LOCKSCREEN_WEATHER_UPDATE_INTERVAL,
+ "update_status",
+ LOCKSCREEN_WEATHER_PROVIDER,
+ LOCKSCREEN_WEATHER_OWM_KEY,
+ LOCKSCREEN_WEATHER_UNITS,
+ LOCKSCREEN_WEATHER_HUMIDITY,
+ LOCKSCREEN_WEATHER_WIND,
+ LOCKSCREEN_WEATHER_TEXT_SIZE,
+ LOCKSCREEN_WEATHER_IMAGE_SIZE,
+ LOCKSCREEN_WEATHER_CUSTOM_LOCATION,
+ LOCKSCREEN_WEATHER_ICON_PACK,
+ LOCKSCREEN_WEATHER_SHOW_LOCATION,
+ LOCKSCREEN_WEATHER_SHOW_CONDITION,
+ LOCKSCREEN_WEATHER_CUSTOM_COLOR_SWITCH-> {
+ return instance.mPreferences.getBoolean(LOCKSCREEN_WEATHER_SWITCH, false);
+ }
+ case "weather_custom_location" -> {
+ return instance.mPreferences.getBoolean(LOCKSCREEN_WEATHER_SWITCH, false) &&
+ instance.mPreferences.getBoolean(LOCKSCREEN_WEATHER_CUSTOM_LOCATION, false);
+ }
+ case LOCKSCREEN_WEATHER_CUSTOM_COLOR -> {
+ return instance.mPreferences.getBoolean(LOCKSCREEN_WEATHER_SWITCH, false) &&
+ instance.mPreferences.getBoolean(LOCKSCREEN_WEATHER_CUSTOM_COLOR_SWITCH, false);
+ }
+
+ // Volume Panel Customization
+ case "volume_panel_seekbar_link_primary" -> {
+ return instance.mPreferences.getBoolean("volume_panel_seekbar_color_enabled", false);
+ }
+ case "volume_panel_seekbar_color" -> {
+ return instance.mPreferences.getBoolean("volume_panel_seekbar_color_enabled", false) &&
+ !instance.mPreferences.getBoolean("volume_panel_seekbar_link_primary", false);
+ }
+ case "volume_panel_icon_accent" -> {
+ return instance.mPreferences.getBoolean("volume_panel_icon_color_enabled", false);
+ }
+ case "volume_panel_icon_color" -> {
+ return instance.mPreferences.getBoolean("volume_panel_icon_color_enabled", false) &&
+ !instance.mPreferences.getBoolean("volume_panel_icon_accent", false);
+ }
+
+ // Advanced Reboot
+ case "advanced_reboot_auth" -> {
+ return instance.mPreferences.getBoolean("show_advanced_reboot", false);
+ }
+
+ // Pulse
+ case "pulse_lavalamp_speed" -> {
+ return Integer.parseInt(instance.mPreferences.getString("pulse_color_mode", "2")) == 2;
+ }
+
+
+ case "volbtn_torch_enable_timeout", "volbtn_torch_use_proximity" -> {
+ return instance.mPreferences.getBoolean("volbtn_torch", false);
+ }
+ case "volbtn_torch_timeout" -> {
+ return instance.mPreferences.getBoolean("volbtn_torch", false) && instance.mPreferences.getBoolean("volbtn_torch_enable_timeout", false);
+ }
+ }
+ return true;
+ }
+
+ public static boolean isVisibleBattery(String key) {
+ int batteryStyle = Integer.parseInt(instance.mPreferences.getString("battery_icon_style", String.valueOf(Constants.Preferences.BatteryPrefs.BATTERY_STYLE_CUSTOM_RLANDSCAPE)));
+
+ boolean showAdvancedCustomizations = batteryStyle >= Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYA &&
+ batteryStyle <= Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYO;
+ boolean showColorPickers = instance.mPreferences.getBoolean(CUSTOM_BATTERY_BLEND_COLOR, false);
+ boolean showRainbowBattery = batteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYI ||
+ batteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYJ;
+ boolean showCommonCustomizations = instance.mPreferences.getBoolean(CUSTOMIZE_BATTERY_ICON, false);
+ boolean showPercentage = batteryStyle != BATTERY_STYLE_DEFAULT &&
+ batteryStyle != BATTERY_STYLE_DEFAULT_LANDSCAPE &&
+ batteryStyle != BATTERY_STYLE_DEFAULT_RLANDSCAPE &&
+ batteryStyle != BATTERY_STYLE_LANDSCAPE_IOS_16 &&
+ batteryStyle != BATTERY_STYLE_LANDSCAPE_BATTERYL &&
+ batteryStyle != BATTERY_STYLE_LANDSCAPE_BATTERYM;
+ boolean showInsidePercentage = showPercentage && !instance.mPreferences.getBoolean(CUSTOM_BATTERY_HIDE_PERCENTAGE, false);
+ boolean showChargingIconCustomization = instance.mPreferences.getBoolean(CUSTOM_BATTERY_CHARGING_ICON_SWITCH, false);
+ boolean circleBattery = batteryStyle == BATTERY_STYLE_CIRCLE ||
+ batteryStyle == BATTERY_STYLE_DOTTED_CIRCLE;
+
+ return switch(key) {
+ case "category_battery_icon_settings",
+ "battery_icon_style",
+ "category_battery_margins" -> showCommonCustomizations;
+ case "category_battery_charging_icon" -> showChargingIconCustomization;
+ case "battery_perimeter_alpha",
+ "battery_fill_alpha",
+ "battery_rotate_layout" -> showAdvancedCustomizations;
+ case "battery_reverse_layout", "battery_inside_percentage" -> showInsidePercentage;
+ case "battery_rainbow_color" -> (showAdvancedCustomizations || circleBattery) && showRainbowBattery;
+ case "battery_blend_color" -> showAdvancedCustomizations || circleBattery;
+ case "battery_fill_color",
+ "battery_fill_gradient_color",
+ "battery_charging_fill_color",
+ "battery_fast_charging_fill_color",
+ "battery_powersave_fill_color",
+ "battery_powersave_icon_color" -> (showAdvancedCustomizations || circleBattery) && showColorPickers;
+ case "battery_hide_percentage" -> showPercentage;
+ case "category_battery_colors" -> showCommonCustomizations && (showAdvancedCustomizations || showRainbowBattery || showColorPickers);
+ default -> false;
+ };
+
+ }
+
+ public static boolean isEnabled(String key) {
+ return switch (key) {
+ case "BBarTransitColors" -> !instance.mPreferences.getBoolean("BBarColorful", false);
+ case "BBarColorful" -> !instance.mPreferences.getBoolean("BBarTransitColors", false);
+ case "BIconColorful" -> !instance.mPreferences.getBoolean("BIconTransitColors", false);
+ case "BIconTransitColors" -> !instance.mPreferences.getBoolean("BIconColorful", false);
+ case "lockscreen_fp_remove_icon" -> !instance.mPreferences.getBoolean("lockscreen_fp_custom_icon", false);
+ case "lockscreen_fp_custom_icon" -> !instance.mPreferences.getBoolean("lockscreen_fp_remove_icon", false);
+ default -> true;
+ };
+ }
+
+ /**
+ */
+ @SuppressLint("DefaultLocale")
+ @Nullable
+ public static String getSummary(Context fragmentCompat, @NonNull String key) {
+ if (key.contains("Slider")) {
+ return String.format("%.2f", instance.mPreferences.getSliderFloat(key, 0f));
+ }
+ if (key.contains("Switch")) {
+ return fragmentCompat.getString(instance.mPreferences.getBoolean(key, false) ? android.R.string.ok : android.R.string.cancel);
+ }
+ if (key.contains("List")) {
+ return instance.mPreferences.getString(key, "");
+ }
+ if (key.contains("EditText")) {
+ return instance.mPreferences.getString(key, "");
+ }
+ if (key.contains("MultiSelect")) {
+ return instance.mPreferences.getStringSet(key, Collections.emptySet()).toString();
+ }
+
+ return switch (key) {
+ // Padding
+ case "statusbar_top_padding" -> instance.mPreferences.getSliderInt(key, 0) + "dp";
+ case "statusbar_left_padding", "statusbar_right_padding" -> String.valueOf(instance.mPreferences.getSliderFloat(key, -0.5f));
+
+ // Battery Bar
+ case "BBOpacity", "BBarHeight" -> instance.mPreferences.getSliderInt(key, 100) + "%";
+
+ // Quick Settings Prefs
+ case "quick_pulldown_length" -> instance.mPreferences.getSliderInt("quick_pulldown_length", 25) + "%";
+ // Tiles
+ case "quick_settings_quick_tiles" ->
+ String.valueOf(instance.mPreferences.getSliderInt("quick_settings_quick_tiles", 5));
+ case "quick_settings_tiles_rows" ->
+ String.valueOf(instance.mPreferences.getSliderInt("quick_settings_tiles_rows", 3));
+ case "quick_settings_tiles_horizontal_columns" ->
+ String.valueOf(instance.mPreferences.getSliderInt("quick_settings_tiles_horizontal_columns", 4));
+ case "quick_settings_tiles_vertical_columns" ->
+ String.valueOf(instance.mPreferences.getSliderInt("quick_settings_tiles_vertical_columns", 4));
+
+ // Statusbar
+ case "status_bar_clock_size" -> instance.mPreferences.getSliderInt("status_bar_clock_size", 14) + "sp";
+ case "status_bar_clock_auto_hide_hduration" ->
+ fragmentCompat.getString(R.string.status_bar_clock_auto_hide_hdur_summary) + "\n" +
+ instance.mPreferences.getSliderInt("status_bar_clock_auto_hide_hduration", 60) + " " +
+ fragmentCompat.getString(R.string.seconds);
+ case "status_bar_clock_auto_hide_sduration" ->
+ fragmentCompat.getString(R.string.status_bar_clock_auto_hide_sdur_summary) + "\n" +
+ instance.mPreferences.getSliderInt("status_bar_clock_auto_hide_sduration", 5) + " " +
+ fragmentCompat.getString(R.string.seconds);
+
+ // Header Clock
+ case "qs_header_clock_text_scaling" -> instance.mPreferences.getSliderFloat("qs_header_clock_text_scaling", 1.0f) + "%";
+ case "qs_header_clock_top_margin" -> instance.mPreferences.getSliderInt("qs_header_clock_top_margin", 0) + "dp";
+ case "qs_header_clock_left_margin" -> instance.mPreferences.getSliderInt("qs_header_clock_left_margin", 0) + "dp";
+
+
+ // Gesture Prefs
+ case "gesture_left_height" -> instance.mPreferences.getSliderInt("gesture_left_height", 100) + "%";
+ case "gesture_right_height" -> instance.mPreferences.getSliderInt("gesture_right_height", 100) + "%";
+ // Launcher Prefs
+ case "folder_columns" -> String.valueOf(instance.mPreferences.getSliderInt("folder_columns", 3));
+ case "folder_rows" -> String.valueOf(instance.mPreferences.getSliderInt("folder_rows", 3));
+ case "drawer_columns" -> String.valueOf(instance.mPreferences.getSliderInt("drawer_columns", 4));
+
+ // Header Image
+ case "qs_header_image_alpha" -> String.valueOf(instance.mPreferences.getSliderInt("qs_header_image_alpha", 255));
+ case "qs_header_image_height_portrait" -> String.valueOf(instance.mPreferences.getSliderInt("qs_header_image_height_portrait", 325));
+ case "qs_header_image_height_landscape" -> String.valueOf(instance.mPreferences.getSliderInt("qs_header_image_height_landscape", 200));
+ case "qs_header_image_padding_side" -> String.valueOf(instance.mPreferences.getSliderInt("qs_header_image_padding_side", -50));
+ case "qs_header_image_padding_top" -> String.valueOf(instance.mPreferences.getSliderInt("qs_header_image_padding_top", 0));
+ case "qs_header_image_tint_intensity" -> instance.mPreferences.getSliderInt("qs_header_image_tint_intensity", 50) + "%";
+ case QS_HEADER_IMAGE_BOTTOM_FADE -> instance.mPreferences.getSliderInt(QS_HEADER_IMAGE_BOTTOM_FADE, 40) + "dp";
+
+ // Lockscreen
+ case LOCKSCREEN_FINGERPRINT_SCALING -> instance.mPreferences.getSliderFloat(LOCKSCREEN_FINGERPRINT_SCALING, 1.0f) + "%";
+
+ // Lockscreen Clock
+ case LOCKSCREEN_CLOCK_LINE_HEIGHT -> instance.mPreferences.getSliderInt(LOCKSCREEN_CLOCK_LINE_HEIGHT, 100) + "dp";
+ case LOCKSCREEN_CLOCK_TEXT_SCALING -> instance.mPreferences.getSliderFloat(LOCKSCREEN_CLOCK_TEXT_SCALING, 1.0f) + "%";
+ case LOCKSCREEN_CLOCK_TOP_MARGIN -> instance.mPreferences.getSliderInt(LOCKSCREEN_CLOCK_TOP_MARGIN, 0) + "dp";
+ case LOCKSCREEN_CLOCK_BOTTOM_MARGIN -> instance.mPreferences.getSliderInt(LOCKSCREEN_CLOCK_BOTTOM_MARGIN, 0) + "dp";
+
+ // Lockscreen Weather
+ case LOCKSCREEN_WEATHER_IMAGE_SIZE -> instance.mPreferences.getSliderInt(LOCKSCREEN_WEATHER_IMAGE_SIZE, 18) + "dp";
+ case LOCKSCREEN_WEATHER_TEXT_SIZE -> instance.mPreferences.getSliderInt(LOCKSCREEN_WEATHER_TEXT_SIZE, 16) + "sp";
+
+ // Sound Prefs
+ case "volume_dialog_timeout" -> instance.mPreferences.getSliderInt("volume_dialog_timeout", 3) + " s";
+
+ // Pulse Prefs
+ case "pulse_lavalamp_speed" ->
+ instance.mPreferences.getSliderInt("pulse_lavalamp_speed", 10000) + " ms";
+ case "pulse_custom_dimen" ->
+ instance.mPreferences.getSliderInt("pulse_custom_dimen", 14) + " px";
+ case "pulse_custom_div" ->
+ instance.mPreferences.getSliderInt("pulse_custom_div", 16) + " px";
+ case "pulse_custom_fudge_factor" ->
+ String.valueOf(instance.mPreferences.getSliderInt("pulse_custom_fudge_factor", 4));
+ case "pulse_filled_block_size" ->
+ instance.mPreferences.getSliderInt("pulse_filled_block_size", 4) + " px";
+ case "pulse_empty_block_size" ->
+ instance.mPreferences.getSliderInt("pulse_empty_block_size", 4) + " px";
+ case "pulse_solid_units_opacity" ->
+ String.valueOf(instance.mPreferences.getSliderInt("pulse_solid_units_opacity", 200));
+ case "pulse_solid_units_count" ->
+ String.valueOf(instance.mPreferences.getSliderInt("pulse_solid_units_count", 32));
+ case "pulse_solid_fudge_factor" ->
+ String.valueOf(instance.mPreferences.getSliderInt("pulse_solid_fudge_factor", 4));
+
+
+ default -> null;
+ };
+
+ }
+
+ /**
+ *
+ */
+ public static void setupPreference(Preference preference) {
+ try {
+ String key = preference.getKey();
+
+ preference.setVisible(isVisible(key));
+ preference.setEnabled(isEnabled(key));
+
+ String summary = getSummary(preference.getContext(), key);
+ if (summary != null && !preference.getKey().equals("sb_illustration")) {
+ preference.setSummary(summary);
+ }
+
+ if (preference instanceof SliderPreference) {
+ ((SliderPreference) preference).slider.setLabelFormatter(value -> {
+ if (value == ((SliderPreference) preference).defaultValue.get(0)) return getAppContext().getString(R.string.default_value);
+ else return String.valueOf(Math.round(value));
+ });
+ }
+
+ //Other special cases
+ switch (key) {
+ // Quick Settings
+ case "QSLabelScaleFactor", "QSSecondaryLabelScaleFactor" ->
+ ((SliderPreference) preference).slider.setLabelFormatter(value -> (value + 100) + "%");
+ case QS_HEADER_CLOCK_TEXT_SCALING, LOCKSCREEN_CLOCK_TEXT_SCALING, LOCKSCREEN_FINGERPRINT_SCALING ->
+ ((SliderPreference) preference).slider.setLabelFormatter(value -> value + "%");
+ }
+ } catch (Throwable ignored) {
+ }
+ }
+
+ public static void setupAllPreferences(PreferenceGroup group) {
+ for (int i = 0; ; i++) {
+ try {
+ Preference thisPreference = group.getPreference(i);
+
+ PreferenceHelper.setupPreference(thisPreference);
+
+ if (thisPreference instanceof PreferenceGroup) {
+ setupAllPreferences((PreferenceGroup) thisPreference);
+ }
+ } catch (Throwable ignored) {
+ break;
+ }
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/TextUtil.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/TextUtil.java
new file mode 100644
index 000000000..972e8d1a9
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/TextUtil.java
@@ -0,0 +1,50 @@
+package it.dhd.oxygencustomizer.utils;
+
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+public class TextUtil {
+
+ public static void convertTextViewsToTitleCase(ViewGroup viewGroup) {
+ if (viewGroup == null) {
+ return;
+ }
+
+ int childCount = viewGroup.getChildCount();
+ for (int i = 0; i < childCount; i++) {
+ View child = viewGroup.getChildAt(i);
+
+ if (child instanceof ViewGroup) {
+ convertTextViewsToTitleCase((ViewGroup) child);
+ } else if (child instanceof TextView textView) {
+ String originalText = textView.getText().toString();
+ String convertedText = convertToTitleCase(originalText);
+ textView.setText(convertedText);
+ }
+ }
+ }
+
+ public static String convertToTitleCase(String input) {
+ if (input == null || input.isEmpty()) {
+ return input;
+ }
+
+ StringBuilder result = new StringBuilder();
+ boolean capitalizeNext = true;
+
+ for (char c : input.toCharArray()) {
+ if (Character.isWhitespace(c)) {
+ capitalizeNext = true;
+ } else if (Character.isLetter(c)) {
+ if (capitalizeNext) {
+ c = Character.toUpperCase(c);
+ capitalizeNext = false;
+ }
+ }
+ result.append(c);
+ }
+
+ return result.toString();
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/ThemeUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/ThemeUtils.java
new file mode 100644
index 000000000..9bcd52e53
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/ThemeUtils.java
@@ -0,0 +1,78 @@
+package it.dhd.oxygencustomizer.utils;
+
+import static it.dhd.oxygencustomizer.OxygenCustomizer.getAppContext;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.util.TypedValue;
+
+import androidx.annotation.AttrRes;
+import androidx.annotation.ColorInt;
+
+public class ThemeUtils {
+
+ /**
+ * Get the primary color from the theme
+ * @return @ColorInt The primary color
+ */
+ public static @ColorInt int getPrimaryColor(Context context) {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = context.getTheme();
+ theme.resolveAttribute(com.google.android.material.R.attr.colorPrimary, typedValue, true);
+ return typedValue.data;
+ }
+
+ public static @ColorInt int getOnPrimaryColor(Context context) {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = context.getTheme();
+ theme.resolveAttribute(com.google.android.material.R.attr.colorOnPrimary, typedValue, true);
+ return typedValue.data;
+ }
+
+ public static @ColorInt int getBackgroundColor() {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = getAppContext().getTheme();
+ theme.resolveAttribute(com.google.android.material.R.attr.backgroundColor, typedValue, true);
+ return typedValue.data;
+ }
+
+ public static @ColorInt int getOnBackgroundColor() {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = getAppContext().getTheme();
+ theme.resolveAttribute(com.google.android.material.R.attr.colorOnBackground, typedValue, true);
+ return typedValue.data;
+ }
+
+ public static @ColorInt int getColorSurfaceHighest() {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = getAppContext().getTheme();
+ theme.resolveAttribute(com.google.android.material.R.attr.colorSurfaceContainerHighest, typedValue, true);
+ return typedValue.data;
+ }
+
+ public static @ColorInt int getColorSurfaceHigh() {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = getAppContext().getTheme();
+ theme.resolveAttribute(com.google.android.material.R.attr.colorSurfaceContainerHigh, typedValue, true);
+ return typedValue.data;
+ }
+
+ public static @ColorInt int getColorSurfaceContainer() {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = getAppContext().getTheme();
+ theme.resolveAttribute(com.google.android.material.R.attr.colorSurfaceContainer, typedValue, true);
+ return typedValue.data;
+ }
+
+ public static int getColorResCompat(Context context, @AttrRes int id) {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = context.getTheme();
+ theme.resolveAttribute(id, typedValue, false);
+ TypedArray arr = context.obtainStyledAttributes(typedValue.data, new int[]{id});
+ @ColorInt int color = arr.getColor(0, -1);
+ arr.recycle();
+ return color;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/ViewBindingHelpers.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/ViewBindingHelpers.java
new file mode 100644
index 000000000..1bc1b6aa9
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/ViewBindingHelpers.java
@@ -0,0 +1,47 @@
+package it.dhd.oxygencustomizer.utils;
+
+import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
+import static com.bumptech.glide.request.RequestOptions.centerCropTransform;
+
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.target.CustomTarget;
+import com.bumptech.glide.request.transition.Transition;
+
+public class ViewBindingHelpers {
+
+ public static void setImageUrl(ImageView imageView, String url) {
+ Glide.with(imageView.getContext()).load(url.replace("http://", "https://")).apply(centerCropTransform()).transition(withCrossFade()).into(imageView);
+ }
+
+ public static void setDrawable(ImageView imageView, Drawable drawable) {
+ Glide.with(imageView.getContext()).load(drawable).into(imageView);
+ }
+
+ public static void setDrawable(ViewGroup viewGroup, Drawable drawable) {
+ Glide.with(viewGroup.getContext()).load(drawable).into(new CustomTarget() {
+ @Override
+ public void onResourceReady(@NonNull Drawable resource, Transition super Drawable> transition) {
+ viewGroup.setBackground(resource);
+ }
+
+ @Override
+ public void onLoadCleared(@Nullable Drawable placeholder) {
+
+ }
+ });
+ }
+
+ public static void setBitmap(ImageView imageView, Bitmap bitmap) {
+ Drawable drawable = new BitmapDrawable(imageView.getContext().getResources(), bitmap);
+ setDrawable(imageView, drawable);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/WallpaperUtil.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/WallpaperUtil.java
new file mode 100644
index 000000000..f24989822
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/WallpaperUtil.java
@@ -0,0 +1,45 @@
+package it.dhd.oxygencustomizer.utils;
+
+import android.app.WallpaperManager;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.ParcelFileDescriptor;
+
+import java.io.ByteArrayOutputStream;
+
+public class WallpaperUtil {
+
+ public static Bitmap getCompressedWallpaper(Context context, int quality, int which) {
+ try {
+ WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);
+ ParcelFileDescriptor wallpaperFile = wallpaperManager.getWallpaperFile(which);
+
+ if (wallpaperFile == null) {
+ Drawable wallpaperDrawable = wallpaperManager.getDrawable();
+
+ if (wallpaperDrawable instanceof BitmapDrawable) {
+ Bitmap bitmap = ((BitmapDrawable) wallpaperDrawable).getBitmap();
+ return compressBitmap(bitmap, quality);
+ } else {
+ return Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
+ }
+ } else {
+ Bitmap bitmap = BitmapFactory.decodeFileDescriptor(wallpaperFile.getFileDescriptor());
+ wallpaperFile.close();
+ return compressBitmap(bitmap, quality);
+ }
+ } catch (Exception e) {
+ return Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
+ }
+ }
+
+ private static Bitmap compressBitmap(Bitmap bitmap, int quality) {
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ bitmap.compress(Bitmap.CompressFormat.JPEG, quality, stream);
+ byte[] byteArray = stream.toByteArray();
+ return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/utils/XposedUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/utils/XposedUtils.java
new file mode 100644
index 000000000..e8785e5d2
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/utils/XposedUtils.java
@@ -0,0 +1,9 @@
+package it.dhd.oxygencustomizer.utils;
+
+public class XposedUtils {
+
+ public static boolean isLSPosedEnabled() {
+ return false;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/weather/AbstractWeatherProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/weather/AbstractWeatherProvider.java
new file mode 100644
index 000000000..fb84451ef
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/weather/AbstractWeatherProvider.java
@@ -0,0 +1,167 @@
+package it.dhd.oxygencustomizer.weather;
+
+/*
+ * Copyright (C) 2015 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+import android.content.Context;
+import android.location.Address;
+import android.location.Geocoder;
+import android.location.Location;
+import android.text.TextUtils;
+import android.util.Log;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.NetworkUtils;
+
+public abstract class AbstractWeatherProvider {
+ private static final String TAG = "AbstractWeatherProvider";
+ private static final boolean DEBUG = false;
+ protected Context mContext;
+ private static final SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
+ private static final String URL_PLACES =
+ "https://secure.geonames.org/searchJSON?name_startsWith=%s&lang=%s&username=omnijaws&maxRows=20";
+ private static final String URL_LOCALITY =
+ "https://secure.geonames.org/extendedFindNearbyJSON?lat=%f&lng=%f&lang=%s&username=omnijaws";
+ public static final String PART_COORDINATES =
+ "lat=%f&lon=%f";
+
+ public AbstractWeatherProvider(Context context) {
+ mContext = context;
+ }
+
+ protected String retrieve(String url) {
+ return NetworkUtils.downloadUrlMemoryAsString(url);
+ }
+
+ public abstract WeatherInfo getCustomWeather(String id, boolean metric);
+
+ public abstract WeatherInfo getLocationWeather(Location location, boolean metric);
+
+ public abstract boolean shouldRetry();
+
+ protected void log(String tag, String msg) {
+ if (DEBUG) Log.d("WeatherService:" + tag, msg);
+ }
+
+ private String getCoordinatesLocalityWithGoogle(String coordinate) {
+ double latitude = Double.valueOf(coordinate.substring(4, coordinate.indexOf("&")));
+ double longitude = Double.valueOf(coordinate.substring(coordinate.indexOf("lon=") + 4));
+ Geocoder geocoder = new Geocoder(mContext.getApplicationContext(), Locale.getDefault());
+ try {
+ List listAddresses = geocoder.getFromLocation(latitude, longitude, 1);
+ if(listAddresses != null && listAddresses.size() > 0){
+ Address a = listAddresses.get(0);
+ return TextUtils.isEmpty(a.getLocality()) ? a.getAdminArea() : a.getLocality();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ protected String getCoordinatesLocality(String coordinate) {
+ String cityGoogle = getCoordinatesLocalityWithGoogle(coordinate);
+ if (!TextUtils.isEmpty(cityGoogle)) {
+ return cityGoogle;
+ }
+ double latitude = Double.valueOf(coordinate.substring(4, coordinate.indexOf("&")));
+ double longitude = Double.valueOf(coordinate.substring(coordinate.indexOf("lon=") + 4));
+ Log.d(TAG, "getCoordinatesLocality " + latitude + " " + longitude);
+
+ String lang = Locale.getDefault().getLanguage().replaceFirst("_", "-");
+ String url = String.format(URL_LOCALITY, latitude, longitude, lang);
+ String response = retrieve(url);
+ if (response == null) {
+ return null;
+ }
+ log(TAG, "URL = " + url + " returning a response of " + response);
+
+ try {
+ JSONObject jsonResults = new JSONObject(response);
+ if (jsonResults.has("address")) {
+ JSONObject address = jsonResults.getJSONObject("address");
+ String city = address.getString("placename");
+ String area = address.getString("adminName2");
+ if (!TextUtils.isEmpty(city)) {
+ return city;
+ }
+ if (!TextUtils.isEmpty(area)) {
+ return area;
+ }
+ } else if (jsonResults.has("geonames")) {
+ JSONArray jsonResultsArray = jsonResults.getJSONArray("geonames");
+ int count = jsonResultsArray.length();
+
+ for (int i = count - 1; i >= 0; i--) {
+ JSONObject geoname = jsonResultsArray.getJSONObject(i);
+ String fcode = geoname.getString("fcode");
+ String name = geoname.getString("name");
+ if (TextUtils.isEmpty(name)) {
+ continue;
+ }
+ if (fcode.equals("ADM3")) {
+ return name;
+ }
+ if (fcode.equals("ADM2")) {
+ return name;
+ }
+ if (fcode.equals("ADM1")) {
+ return name;
+ }
+ }
+ }
+ } catch (Exception e) {
+ Log.w(TAG, "Received malformed location data (coordinate=" + coordinate + ")", e);
+ }
+ return null;
+ }
+
+ protected String getWeatherDataLocality(String coordinates) {
+ String city;
+ if (Config.isCustomLocation(mContext)) {
+ city = Config.getLocationName(mContext);
+ if (TextUtils.isEmpty(city)) {
+ city = getCoordinatesLocality(coordinates);
+ }
+ } else {
+ city = getCoordinatesLocality(coordinates);
+ }
+ if (TextUtils.isEmpty(city)) {
+ city = mContext.getResources().getString(R.string.omnijaws_city_unkown);
+ }
+ log(TAG, "getWeatherDataLocality = " + city);
+ return city;
+ }
+
+ protected String getDay(int i) {
+ Calendar calendar = Calendar.getInstance();
+ if (i > 0) {
+ calendar.add(Calendar.DATE, i);
+ }
+ return dayFormat.format(calendar.getTime());
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/weather/Config.java b/app/src/main/java/it/dhd/oxygencustomizer/weather/Config.java
new file mode 100644
index 000000000..7744985f8
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/weather/Config.java
@@ -0,0 +1,182 @@
+package it.dhd.oxygencustomizer.weather;
+
+/*
+ * Copyright (C) 2015 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_CUSTOM_LOCATION;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_ICON_PACK;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_OWM_KEY;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_PROVIDER;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_UNITS;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_UPDATE_INTERVAL;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.preference.PreferenceManager;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.weather.providers.METNorwayProvider;
+import it.dhd.oxygencustomizer.weather.providers.OpenWeatherMapProvider;
+
+public class Config {
+ public static final String SharedXPref = BuildConfig.APPLICATION_ID + "_preferences";
+ public static final String PREF_KEY_PROVIDER = "provider";
+ public static final String PREF_KEY_UNITS = "units";
+ public static final String PREF_KEY_LOCATION_ID = "location_id";
+ public static final String PREF_KEY_LOCATION_NAME = "location_name";
+ public static final String PREF_KEY_WEATHER_DATA = "weather_data";
+ public static final String PREF_KEY_LAST_UPDATE = "last_update";
+ public static final String PREF_KEY_ENABLE = "enable";
+ public static final String PREF_KEY_UPDATE_INTERVAL = "update_interval";
+ public static final String PREF_KEY_ICON_PACK = "icon_pack";
+ public static final String PREF_KEY_UPDATE_ERROR = "update_error";
+ public static final String PREF_KEY_OWM_KEY = "owm_key";
+ public static final String PREF_KEY_HISTORY = "history";
+ public static final String PREF_KEY_HISTORY_SIZE = "history_size";
+
+ private static SharedPreferences getPrefs(Context context)
+ {
+ try {
+ if (Xprefs != null)
+ return Xprefs;
+ return context.createDeviceProtectedStorageContext().getSharedPreferences(SharedXPref, Context.MODE_PRIVATE);
+ } catch (Throwable t) {
+ return context.createDeviceProtectedStorageContext().getSharedPreferences(SharedXPref, Context.MODE_PRIVATE);
+ }
+ }
+
+ public static AbstractWeatherProvider getProvider(Context context) {
+ String provider = getPrefs(context).getString(LOCKSCREEN_WEATHER_PROVIDER, "0");
+
+ return switch (provider) {
+ case "1" -> new METNorwayProvider(context);
+ default -> new OpenWeatherMapProvider(context);
+ };
+ }
+
+ public static String getProviderId(Context context) {
+ String provider = getPrefs(context).getString(LOCKSCREEN_WEATHER_PROVIDER, "0");
+
+ return switch (provider) {
+ case "1" -> "MET Norway";
+ default -> "OpenWeatherMap";
+ };
+ }
+
+ public static boolean isMetric(Context context) {
+
+ return getPrefs(context).getString(LOCKSCREEN_WEATHER_UNITS, "0").equals("0");
+ }
+
+ public static boolean isCustomLocation(Context context) {
+ return getPrefs(context).getBoolean(LOCKSCREEN_WEATHER_CUSTOM_LOCATION, false);
+ }
+
+ public static String getLocationId(Context context) {
+
+ return getPrefs(context).getString(PREF_KEY_LOCATION_ID, null);
+ }
+
+ public static void setLocationId(Context context, String id) {
+
+ getPrefs(context).edit().putString(PREF_KEY_LOCATION_ID, id).apply();
+ }
+
+ public static String getLocationName(Context context) {
+
+ return getPrefs(context).getString(PREF_KEY_LOCATION_NAME, null);
+ }
+
+ public static void setLocationName(Context context, String name) {
+ getPrefs(context).edit().putString(PREF_KEY_LOCATION_NAME, name).apply();
+ }
+
+ public static WeatherInfo getWeatherData(Context context) {
+ String str = null;
+ try {
+ str = getPrefs(context).getString(PREF_KEY_WEATHER_DATA, null);
+ } catch (Throwable ignored) {
+ }
+
+ if (str != null) {
+ return WeatherInfo.fromSerializedString(context, str);
+ }
+ return null;
+ }
+
+ public static void setWeatherData(WeatherInfo data, Context context) {
+ try {
+ Xprefs.edit().putString(PREF_KEY_WEATHER_DATA, data.toSerializedString()).apply();
+ Xprefs.edit().putLong(PREF_KEY_LAST_UPDATE, System.currentTimeMillis()).apply();
+ } catch (Throwable ignored) {
+ SharedPreferences prefs = context.createDeviceProtectedStorageContext().getSharedPreferences(SharedXPref, Context.MODE_PRIVATE);
+ prefs.edit().putString(PREF_KEY_WEATHER_DATA, data.toSerializedString()).apply();
+ prefs.edit().putLong(PREF_KEY_LAST_UPDATE, System.currentTimeMillis()).apply();
+ }
+ }
+
+ public static void clearLastUpdateTime(Context context) {
+ getPrefs(context).edit().putLong(PREF_KEY_LAST_UPDATE, 0).apply();
+ }
+
+ public static boolean isEnabled(Context context) {
+
+ return getPrefs(context).getBoolean(LOCKSCREEN_WEATHER_SWITCH, false);
+ }
+
+ public static boolean setEnabled(Context context, boolean value) {
+ SharedPreferences prefs = PreferenceManager
+ .getDefaultSharedPreferences(context);
+
+ return prefs.edit().putBoolean(PREF_KEY_ENABLE, value).commit();
+ }
+
+ public static int getUpdateInterval(Context context) {
+
+ int updateValue = 2;
+ try {
+ updateValue = Integer.parseInt(getPrefs(context).getString(LOCKSCREEN_WEATHER_UPDATE_INTERVAL, "2"));
+ } catch (Throwable ignored) {
+ }
+
+ return updateValue;
+ }
+
+ public static String getIconPack(Context context) {
+
+ return getPrefs(context).getString(LOCKSCREEN_WEATHER_ICON_PACK, null);
+ }
+
+ public static void setUpdateError(Context context, boolean value) {
+ getPrefs(context).edit().putBoolean(PREF_KEY_UPDATE_ERROR, value).apply();
+ }
+
+ public static boolean isSetupDone(Context context) {
+ return context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
+ == PackageManager.PERMISSION_GRANTED;
+ }
+
+ public static String getOwmKey(Context context) {
+
+ return getPrefs(context).getString(LOCKSCREEN_WEATHER_OWM_KEY, null);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherContentProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherContentProvider.java
new file mode 100644
index 000000000..5ad4d08f4
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherContentProvider.java
@@ -0,0 +1,213 @@
+package it.dhd.oxygencustomizer.weather;
+
+/*
+ * Copyright (C) 2013 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+
+public class WeatherContentProvider extends ContentProvider {
+ private static final String TAG = "WeatherService:WeatherContentProvider";
+ private static final boolean DEBUG = true;
+
+ static WeatherInfo sCachedWeatherInfo;
+
+ private static final int URI_TYPE_WEATHER = 1;
+ private static final int URI_TYPE_SETTINGS = 2;
+ private static final int URI_TYPE_CONTROL = 3;
+
+ private static final String COLUMN_CURRENT_CITY_ID = "city_id";
+ private static final String COLUMN_CURRENT_CITY = "city";
+ private static final String COLUMN_CURRENT_CONDITION = "condition";
+ private static final String COLUMN_CURRENT_TEMPERATURE = "temperature";
+ private static final String COLUMN_CURRENT_HUMIDITY = "humidity";
+ private static final String COLUMN_CURRENT_WIND_SPEED = "wind_speed";
+ private static final String COLUMN_CURRENT_WIND_DIRECTION = "wind_direction";
+ private static final String COLUMN_CURRENT_TIME_STAMP = "time_stamp";
+ private static final String COLUMN_CURRENT_CONDITION_CODE = "condition_code";
+ private static final String COLUMN_CURRENT_PIN_WHEEL = "pin_wheel";
+
+ private static final String COLUMN_FORECAST_LOW = "forecast_low";
+ private static final String COLUMN_FORECAST_HIGH = "forecast_high";
+ private static final String COLUMN_FORECAST_CONDITION = "forecast_condition";
+ private static final String COLUMN_FORECAST_CONDITION_CODE = "forecast_condition_code";
+ private static final String COLUMN_FORECAST_DATE = "forecast_date";
+
+ private static final String COLUMN_ENABLED = "enabled";
+ private static final String COLUMN_PROVIDER = "provider";
+ private static final String COLUMN_INTERVAL = "interval";
+ private static final String COLUMN_UNITS = "units";
+ private static final String COLUMN_LOCATION = "location";
+ private static final String COLUMN_SETUP = "setup";
+ private static final String COLUMN_ICON_PACK = "icon_pack";
+
+ public static final String COLUMN_FORCE_REFRESH = "update";
+
+ private static final String[] PROJECTION_DEFAULT_WEATHER = new String[] {
+ COLUMN_CURRENT_CITY_ID,
+ COLUMN_CURRENT_CITY,
+ COLUMN_CURRENT_CONDITION,
+ COLUMN_CURRENT_TEMPERATURE,
+ COLUMN_CURRENT_HUMIDITY,
+ COLUMN_CURRENT_WIND_SPEED,
+ COLUMN_CURRENT_WIND_DIRECTION,
+ COLUMN_CURRENT_TIME_STAMP,
+ COLUMN_CURRENT_PIN_WHEEL,
+ COLUMN_CURRENT_CONDITION_CODE,
+ COLUMN_FORECAST_LOW,
+ COLUMN_FORECAST_HIGH,
+ COLUMN_FORECAST_CONDITION,
+ COLUMN_FORECAST_CONDITION_CODE,
+ COLUMN_FORECAST_DATE
+ };
+
+ private static final String[] PROJECTION_DEFAULT_SETTINGS = new String[] {
+ COLUMN_ENABLED,
+ COLUMN_PROVIDER,
+ COLUMN_INTERVAL,
+ COLUMN_UNITS,
+ COLUMN_LOCATION,
+ COLUMN_SETUP,
+ COLUMN_ICON_PACK
+ };
+
+ public static final String AUTHORITY = "it.dhd.oxygencustomizer.provider";
+
+ private static final UriMatcher sUriMatcher;
+ static {
+ sUriMatcher = new UriMatcher(URI_TYPE_WEATHER);
+ sUriMatcher.addURI(AUTHORITY, "weather", URI_TYPE_WEATHER);
+ sUriMatcher.addURI(AUTHORITY, "settings", URI_TYPE_SETTINGS);
+ sUriMatcher.addURI(AUTHORITY, "control", URI_TYPE_CONTROL);
+ }
+
+ private Context mContext;
+
+ @Override
+ public boolean onCreate() {
+ mContext = getContext();
+ sCachedWeatherInfo = Config.getWeatherData(mContext);
+ return true;
+ }
+
+ @Override
+ public Cursor query(
+ @NonNull Uri uri,
+ String[] projection,
+ String selection,
+ String[] selectionArgs,
+ String sortOrder) {
+
+ final int projectionType = sUriMatcher.match(uri);
+ final MatrixCursor result = new MatrixCursor(resolveProjection(projection, projectionType));
+
+
+ if (projectionType == URI_TYPE_SETTINGS) {
+ result.newRow()
+ .add(COLUMN_ENABLED, Config.isEnabled(mContext) ? 1 : 0)
+ .add(COLUMN_PROVIDER, Config.getProviderId(mContext))
+ .add(COLUMN_INTERVAL, Config.getUpdateInterval(mContext))
+ .add(COLUMN_UNITS, Config.isMetric(mContext) ? 0 : 1)
+ .add(COLUMN_LOCATION, Config.isCustomLocation(mContext) ? Config.getLocationName(mContext) : "")
+ .add(COLUMN_SETUP, !Config.isSetupDone(mContext) && sCachedWeatherInfo == null ? 0 : 1)
+ .add(COLUMN_ICON_PACK, Config.getIconPack(mContext) != null ? Config.getIconPack(mContext) : "");
+
+
+ return result;
+ } else if (projectionType == URI_TYPE_WEATHER) {
+ WeatherInfo weather = sCachedWeatherInfo;
+ if (weather != null) {
+ // current
+ result.newRow()
+ .add(COLUMN_CURRENT_CITY, weather.getCity())
+ .add(COLUMN_CURRENT_CITY_ID, weather.getId())
+ .add(COLUMN_CURRENT_CONDITION, weather.getCondition())
+ .add(COLUMN_CURRENT_HUMIDITY, weather.getFormattedHumidity())
+ .add(COLUMN_CURRENT_WIND_SPEED, weather.getWindSpeed())
+ .add(COLUMN_CURRENT_WIND_DIRECTION, weather.getWindDirection())
+ .add(COLUMN_CURRENT_TEMPERATURE, weather.getTemperature())
+ .add(COLUMN_CURRENT_TIME_STAMP, weather.getTimestamp().toString())
+ .add(COLUMN_CURRENT_PIN_WHEEL, weather.getPinWheel())
+ .add(COLUMN_CURRENT_CONDITION_CODE, weather.getConditionCode());
+
+ // forecast
+ for (WeatherInfo.DayForecast day : weather.getForecasts()) {
+ result.newRow()
+ .add(COLUMN_FORECAST_CONDITION, day.getCondition(mContext))
+ .add(COLUMN_FORECAST_LOW, day.getLow())
+ .add(COLUMN_FORECAST_HIGH, day.getHigh())
+ .add(COLUMN_FORECAST_CONDITION_CODE, day.getConditionCode())
+ .add(COLUMN_FORECAST_DATE, day.date);
+ }
+
+
+ return result;
+ }
+ }
+ return null;
+ }
+
+ private String[] resolveProjection(String[] projection, int uriType) {
+ if (projection != null)
+ return projection;
+ return switch (uriType) {
+ default -> PROJECTION_DEFAULT_WEATHER;
+ case URI_TYPE_SETTINGS -> PROJECTION_DEFAULT_SETTINGS;
+ };
+ }
+
+ @Override
+ public String getType(@NonNull Uri uri) {
+ return null;
+ }
+
+ @Override
+ public Uri insert(@NonNull Uri uri, ContentValues values) {
+ return null;
+ }
+
+ @Override
+ public int delete(@NonNull Uri uri, String selection, String[] selectionArgs) {
+ return 0;
+ }
+
+ @Override
+ public int update(@NonNull Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+ final int projectionType = sUriMatcher.match(uri);
+ if (projectionType == URI_TYPE_CONTROL) {
+ if (values.containsKey(COLUMN_FORCE_REFRESH) && values.getAsBoolean(COLUMN_FORCE_REFRESH)) {
+ if (DEBUG) Log.i(TAG, "update: " + uri.toString() + " " + values);
+ WeatherUpdateService.scheduleUpdateNow(mContext);
+ }
+ }
+ return 0;
+ }
+
+ public static void updateCachedWeatherInfo(Context context) {
+ if (DEBUG) Log.d(TAG, "updateCachedWeatherInfo()");
+ sCachedWeatherInfo = Config.getWeatherData(context);
+ context.getContentResolver().notifyChange(
+ Uri.parse("content://" + WeatherContentProvider.AUTHORITY + "/weather"), null);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherInfo.java b/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherInfo.java
new file mode 100644
index 000000000..1044301dc
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherInfo.java
@@ -0,0 +1,355 @@
+package it.dhd.oxygencustomizer.weather;
+
+/*
+ * Copyright (C) 2012 The AOKP Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+public class WeatherInfo {
+ private static final DecimalFormat sNoDigitsFormat = new DecimalFormat("0");
+
+ private Context mContext;
+
+ private String id;
+ private String city;
+ private String condition;
+ private String pinWheel;
+ private int conditionCode;
+ public float temperature;
+ private float humidity;
+ private float wind;
+ private int windDirection;
+ private long timestamp;
+ private ArrayList forecasts;
+ private boolean metric;
+
+ private WeatherInfo(Context context, String id,
+ String city, String condition, int conditionCode, float temp,
+ float humidity, float wind, int windDir,
+ boolean metric, ArrayList forecasts, long timestamp,
+ String pinWheel) {
+ this.mContext = context.getApplicationContext();
+ this.id = id;
+ this.city = city;
+ this.condition = condition;
+ this.conditionCode = conditionCode;
+ this.humidity = humidity;
+ this.wind = wind;
+ this.windDirection = windDir;
+ this.timestamp = timestamp;
+ this.temperature = temp;
+ this.forecasts = forecasts;
+ this.metric = metric;
+ this.pinWheel = pinWheel;
+ }
+
+ public WeatherInfo(Context context, String id,
+ String city, String condition, int conditionCode, float temp,
+ float humidity, float wind, int windDir,
+ boolean metric, ArrayList forecasts, long timestamp) {
+ this(context, id, city, condition, conditionCode, temp, humidity, wind, windDir,
+ metric, forecasts, timestamp, "");
+ this.pinWheel = getFormattedWindDirection(windDir);
+ }
+
+ public static class WeatherLocation {
+ public String id;
+ public String city;
+ public String postal;
+ public String countryId;
+ public String country;
+ }
+
+ public static class DayForecast {
+ public final float low, high;
+ public final int conditionCode;
+ public final String condition;
+ public boolean metric;
+ public String date;
+
+ public DayForecast(float low, float high, String condition, int conditionCode, String date, boolean metric) {
+ this.low = low;
+ this.high = high;
+ this.condition = condition;
+ this.conditionCode = conditionCode;
+ this.metric = metric;
+ this.date = date;
+ }
+
+ public float getLow() {
+ return low;
+ }
+
+ public float getHigh() {
+ return high;
+ }
+
+ public String getCondition(Context context) {
+ return WeatherInfo.getCondition(context, conditionCode, condition);
+ }
+
+ public int getConditionCode() {
+ return conditionCode;
+ }
+ }
+
+ public static final String[] WIND_DIRECTION = new String[]{
+ "N",
+ "NNE",
+ "NE",
+ "ENE",
+ "E",
+ "ESE",
+ "SE",
+ "SSE",
+ "S",
+ "SSW",
+ "SW",
+ "WSW",
+ "W",
+ "WNW",
+ "NW",
+ "NNW"
+ };
+
+ public String getId() {
+ return id;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public String getCondition() {
+ return getCondition(mContext, conditionCode, condition);
+ }
+
+ public int getConditionCode() {
+ return conditionCode;
+ }
+
+ private static String getCondition(Context context, int conditionCode, String condition) {
+ final Resources res = context.getResources();
+ final int resId = res.getIdentifier("weather_" + conditionCode, "string", context.getPackageName());
+ if (resId != 0) {
+ return res.getString(resId);
+ }
+ return condition;
+ }
+
+ public Long getTimestamp() {
+ return new Long(timestamp);
+ }
+
+ public Date getFormattedTimestamp() {
+ return new Date(timestamp);
+ }
+
+ private static String getFormattedValue(float value, String unit) {
+ if (Float.isNaN(value)) {
+ return "-";
+ }
+ String formatted = sNoDigitsFormat.format(value);
+ if (formatted.equals("-0")) {
+ formatted = "0";
+ }
+ return formatted + unit;
+ }
+
+ public String getFormattedHumidity() {
+ return getFormattedValue(humidity, "%");
+ }
+
+ public float getWindSpeed() {
+ if (wind < 0) {
+ return 0;
+ }
+ return wind;
+ }
+
+ private String getFormattedWindSpeed() {
+ if (wind < 0) {
+ return "0";
+ }
+ return getFormattedValue(wind, metric?"km/h":"m/h");
+ }
+
+ public int getWindDirection() {
+ return windDirection;
+ }
+
+ private String getFormattedWindDirection(int direction) {
+ int value = (int) ((direction/22.5)+0.5);
+ String pw = WIND_DIRECTION[(value % 16)];
+ return pw;
+ }
+
+ public String getPinWheel() {
+ return pinWheel;
+ }
+
+ public ArrayList getForecasts() {
+ return forecasts;
+ }
+
+ public float getTemperature() {
+ return temperature;
+ }
+
+ private String getTemperatureUnit() {
+ return "\u00b0" + (metric ? "C" : "F");
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("WeatherInfo for ");
+ builder.append(city);
+ builder.append(" (");
+ builder.append(id);
+ builder.append(") @ ");
+ builder.append(getFormattedTimestamp());
+ builder.append(": ");
+ builder.append(getCondition());
+ builder.append("(");
+ builder.append(conditionCode);
+ builder.append("), temperature ");
+ builder.append(getFormattedValue(getTemperature(), getTemperatureUnit()));
+ builder.append(", humidity ");
+ builder.append(getFormattedHumidity());
+ builder.append(", wind ");
+ builder.append(getFormattedWindSpeed());
+ builder.append(" at ");
+ builder.append(getWindDirection());
+ if (forecasts.size() > 0) {
+ builder.append(", forecasts:");
+ }
+ for (int i = 0; i < forecasts.size(); i++) {
+ DayForecast d = forecasts.get(i);
+ if (i != 0) {
+ builder.append(";");
+ }
+ builder.append(" day ").append(i + 1).append(":");
+ builder.append(d.date);
+ builder.append(" high ").append(getFormattedValue(d.getHigh(), getTemperatureUnit()));
+ builder.append(", low ").append(getFormattedValue(d.getLow(), getTemperatureUnit()));
+ builder.append(", ").append(d.condition);
+ builder.append("(").append(d.conditionCode).append(")");
+ }
+ return builder.toString();
+ }
+
+ public String toSerializedString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append(id).append('|');
+ builder.append(city).append('|');
+ builder.append(condition).append('|');
+ builder.append(conditionCode).append('|');
+ builder.append(temperature).append('|');
+ builder.append(humidity).append('|');
+ builder.append(wind).append('|');
+ builder.append(windDirection).append('|');
+ builder.append(metric).append('|');
+ builder.append(timestamp).append('|');
+ builder.append(pinWheel).append('|');
+ serializeForecasts(builder);
+ return builder.toString();
+ }
+
+ private void serializeForecasts(StringBuilder builder) {
+ builder.append(forecasts.size());
+ for (DayForecast d : forecasts) {
+ builder.append(';');
+ builder.append(d.high).append(';');
+ builder.append(d.low).append(';');
+ builder.append(d.condition).append(';');
+ builder.append(d.conditionCode).append(';');
+ builder.append(d.date);
+ }
+ }
+
+ public static WeatherInfo fromSerializedString(Context context, String input) {
+ if (input == null) {
+ return null;
+ }
+
+ String[] parts = input.split("\\|");
+ if (parts == null || parts.length != 12) {
+ return null;
+ }
+
+ int conditionCode, windDirection;
+ long timestamp;
+ float temperature, humidity, wind;
+ boolean metric;
+ String pinWheel;
+ String[] forecastParts = parts[11].split(";");
+ int forecastItems;
+ ArrayList forecasts = new ArrayList();
+
+ // Parse the core data
+ try {
+ conditionCode = Integer.parseInt(parts[3]);
+ temperature = Float.parseFloat(parts[4]);
+ humidity = Float.parseFloat(parts[5]);
+ wind = Float.parseFloat(parts[6]);
+ windDirection = Integer.parseInt(parts[7]);
+ metric = Boolean.parseBoolean(parts[8]);
+ timestamp = Long.parseLong(parts[9]);
+ pinWheel = parts[10];
+ forecastItems = forecastParts == null ? 0 : Integer.parseInt(forecastParts[0]);
+ } catch (NumberFormatException e) {
+ return null;
+ }
+
+ if (forecastItems == 0 || forecastParts.length != 5 * forecastItems + 1) {
+ return null;
+ }
+
+ // Parse the forecast data
+ try {
+ for (int item = 0; item < forecastItems; item ++) {
+ int offset = item * 5 + 1;
+ DayForecast day = new DayForecast(
+ /* low */ Float.parseFloat(forecastParts[offset + 1]),
+ /* high */ Float.parseFloat(forecastParts[offset]),
+ /* condition */ forecastParts[offset + 2],
+ /* conditionCode */ Integer.parseInt(forecastParts[offset + 3]),
+ forecastParts[offset + 4],
+ metric);
+ if (!Float.isNaN(day.low) && !Float.isNaN(day.high) /*&& day.conditionCode >= 0*/) {
+ forecasts.add(day);
+ }
+ }
+ } catch (NumberFormatException ignored) {
+ }
+
+ if (forecasts.isEmpty()) {
+ return null;
+ }
+
+ return new WeatherInfo(context,
+ /* id */ parts[0], /* city */ parts[1], /* condition */ parts[2],
+ conditionCode, temperature,
+ humidity, wind, windDirection, metric,
+ /* forecasts */ forecasts, timestamp, pinWheel);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherUpdateService.java b/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherUpdateService.java
new file mode 100644
index 000000000..47b84e3cd
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/weather/WeatherUpdateService.java
@@ -0,0 +1,303 @@
+package it.dhd.oxygencustomizer.weather;
+
+/*
+ * Copyright (C) 2017 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+import android.Manifest;
+import android.annotation.SuppressLint;
+import android.app.job.JobInfo;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.location.Criteria;
+import android.location.Location;
+import android.location.LocationManager;
+import android.location.LocationRequest;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.Log;
+
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+import java.util.concurrent.TimeUnit;
+
+// we dont need an explicit wakelock JobScheduler takes care of that
+public class WeatherUpdateService extends JobService {
+ private static final String TAG = "WeatherUpdateService";
+ private static final boolean DEBUG = true;
+ private static final String ACTION_BROADCAST = "it.dhd.oxygencustomizer.WEATHER_UPDATE";
+ private static final String ACTION_ERROR = "it.dhd.oxygencustomizer.WEATHER_ERROR";
+
+ private static final String EXTRA_ERROR = "error";
+
+ private static final int EXTRA_ERROR_LOCATION = 1;
+ private static final int EXTRA_ERROR_DISABLED = 2;
+
+ private static final float LOCATION_ACCURACY_THRESHOLD_METERS = 50000;
+ private static final long OUTDATED_LOCATION_THRESHOLD_MILLIS = 10L * 60L * 1000L; // 10 minutes
+ private static final int RETRY_DELAY_MS = 5000;
+ private static final int RETRY_MAX_NUM = 5;
+
+ public static final int PERIODIC_UPDATE_JOB_ID = 0;
+ public static final int ONCE_UPDATE_JOB_ID = 1;
+
+ private HandlerThread mHandlerThread;
+ private Handler mHandler;
+ private static final SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US);
+
+ private static final Criteria sLocationCriteria;
+ static {
+ sLocationCriteria = new Criteria();
+ sLocationCriteria.setPowerRequirement(Criteria.POWER_LOW);
+ sLocationCriteria.setAccuracy(Criteria.ACCURACY_COARSE);
+ sLocationCriteria.setCostAllowed(false);
+ }
+
+ @Override
+ public boolean onStopJob(JobParameters params) {
+ if (DEBUG) Log.d(TAG, "onStopJob " + params.getJobId());
+ return true;
+ }
+
+ @Override
+ public boolean onStartJob(JobParameters params) {
+ if (DEBUG) Log.d(TAG, "onStartJob " + params.getJobId());
+ updateWeatherFromAlarm(params);
+ return true;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ if (DEBUG) Log.d(TAG, "onCreate");
+ mHandlerThread = new HandlerThread("WeatherService Thread");
+ mHandlerThread.start();
+ mHandler = new Handler(mHandlerThread.getLooper());
+
+ }
+
+ private void updateWeatherFromAlarm(JobParameters params) {
+ Config.setUpdateError(this, false);
+
+ try {
+ if (!Config.isEnabled(WeatherUpdateService.this)) {
+ Log.w(TAG, "Service started, but not enabled ... stopping");
+ Intent errorIntent = new Intent(ACTION_ERROR);
+ errorIntent.putExtra(EXTRA_ERROR, EXTRA_ERROR_DISABLED);
+ sendBroadcast(errorIntent);
+ return;
+ }
+
+ Config.clearLastUpdateTime(WeatherUpdateService.this);
+
+ if (DEBUG) Log.d(TAG, "call updateWeather from updateWeatherFromAlarm");
+ updateWeather();
+ } finally {
+ jobFinished(params, false);
+ }
+ }
+
+ private boolean doCheckLocationEnabled() {
+ return Settings.Secure.getInt(getContentResolver(), Settings.Secure.LOCATION_MODE, -1) != Settings.Secure.LOCATION_MODE_OFF;
+ }
+
+ @SuppressLint("MissingPermission")
+ private Location getCurrentLocation() {
+ LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
+ if (!doCheckLocationEnabled()) {
+ Log.w(TAG, "locations disabled");
+ return null;
+ }
+ Location location = lm.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
+ if (DEBUG) Log.d(TAG, "Current location is " + location);
+
+ if (location != null && location.getAccuracy() > LOCATION_ACCURACY_THRESHOLD_METERS) {
+ Log.w(TAG, "Ignoring inaccurate location");
+ location = null;
+ }
+
+ // If lastKnownLocation is not present (because none of the apps in the
+ // device has requested the current location to the system yet) or outdated,
+ // then try to get the current location use the provider that best matches the criteria.
+ boolean needsUpdate = location == null;
+ if (location != null) {
+ long delta = System.currentTimeMillis() - location.getTime();
+ needsUpdate = delta > OUTDATED_LOCATION_THRESHOLD_MILLIS;
+ if (needsUpdate) {
+ Log.w(TAG, "Ignoring too old location from " + dayFormat.format(location.getTime()));
+ location = null;
+ }
+ }
+ if (needsUpdate) {
+ String locationProvider = lm.getBestProvider(sLocationCriteria, true);
+ if (TextUtils.isEmpty(locationProvider)) {
+ Log.e(TAG, "No available location providers matching criteria.");
+ } else {
+ if (DEBUG) Log.d(TAG, "Getting current location with provider " + locationProvider);
+ lm.getCurrentLocation(locationProvider, null, getApplication().getMainExecutor(), location1 -> {
+ if (location1 != null) {
+ if (DEBUG) Log.d(TAG, "Got valid location now update");
+ WeatherUpdateService.scheduleUpdateNow(WeatherUpdateService.this);
+ } else {
+ Log.w(TAG, "Failed to retrieve location");
+ Intent errorIntent = new Intent(ACTION_ERROR);
+ errorIntent.putExtra(EXTRA_ERROR, EXTRA_ERROR_LOCATION);
+ sendBroadcast(errorIntent);
+ Config.setUpdateError(WeatherUpdateService.this, true);
+ }
+ });
+ }
+ }
+
+ return location;
+ }
+
+ public static void scheduleUpdatePeriodic(Context context) {
+ cancelUpdatePeriodic(context);
+
+ if (DEBUG) Log.d(TAG, "scheduleUpdatePeriodic");
+ final long interval = TimeUnit.HOURS.toMillis(Config.getUpdateInterval(context));
+ final long due = System.currentTimeMillis() + interval;
+
+ if (DEBUG) Log.d(TAG, "Scheduling next update at " + new Date(due));
+
+ ComponentName component = new ComponentName(context, WeatherUpdateService.class);
+ JobInfo job = new JobInfo.Builder(PERIODIC_UPDATE_JOB_ID, component)
+ .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
+ .setPeriodic(interval)
+ .build();
+ JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+ jobScheduler.schedule(job);
+ }
+
+ public static void scheduleUpdateOnce(Context context, long timeoutMillis, int jobId) {
+ if (DEBUG) Log.d(TAG, "scheduleUpdateOnce");
+
+ ComponentName component = new ComponentName(context, WeatherUpdateService.class);
+ JobInfo job = new JobInfo.Builder(jobId, component)
+ .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
+ .setMinimumLatency(timeoutMillis)
+ .setOverrideDeadline(timeoutMillis)
+ .build();
+ JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+ jobScheduler.schedule(job);
+ }
+
+ public static void scheduleUpdateNow(Context context) {
+ if (DEBUG) Log.d(TAG, "scheduleUpdateNow");
+
+ ComponentName component = new ComponentName(context, WeatherUpdateService.class);
+ JobInfo job = new JobInfo.Builder(ONCE_UPDATE_JOB_ID, component)
+ .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
+ .setMinimumLatency(1)
+ .setOverrideDeadline(1)
+ .build();
+ JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+ jobScheduler.schedule(job);
+ }
+
+ private static void cancelUpdate(Context context) {
+ if (DEBUG) Log.d(TAG, "cancelUpdate");
+ JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+ jobScheduler.cancel(PERIODIC_UPDATE_JOB_ID);
+ }
+
+ public static void cancelUpdatePeriodic(Context context) {
+ cancelUpdate(context);
+ }
+
+ public static void cancelAllUpdate(Context context) {
+ JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
+ jobScheduler.cancelAll();
+ }
+
+ private void updateWeather() {
+ mHandler.post(() -> {
+ WeatherInfo w = null;
+ try {
+ AbstractWeatherProvider provider = Config.getProvider(WeatherUpdateService.this);
+ int i = 0;
+ // retry max 3 times
+ while (i < RETRY_MAX_NUM) {
+ if (!Config.isCustomLocation(WeatherUpdateService.this)) {
+ if (checkPermissions()) {
+ Location location = getCurrentLocation();
+ if (location != null) {
+ w = provider.getLocationWeather(location, Config.isMetric(WeatherUpdateService.this));
+ } else {
+ Log.w(TAG, "no location yet");
+ // we are outa here
+ break;
+ }
+ } else {
+ Log.w(TAG, "no location permissions");
+ // we are outa here
+ break;
+ }
+ } else if (Config.getLocationId(WeatherUpdateService.this) != null) {
+ w = provider.getCustomWeather(Config.getLocationId(WeatherUpdateService.this), Config.isMetric(WeatherUpdateService.this));
+ } else {
+ Log.w(TAG, "no valid custom location");
+ // we are outa here
+ break;
+ }
+ if (w != null) {
+ Config.setWeatherData(w, WeatherUpdateService.this);
+ WeatherContentProvider.updateCachedWeatherInfo(WeatherUpdateService.this);
+ //WeatherAppWidgetProvider.updateAllWidgets(WeatherUpdateService.this);
+ // we are outa here
+ break;
+ } else {
+ if (!provider.shouldRetry()) {
+ // some other error
+ break;
+ } else {
+ Log.w(TAG, "retry count =" + i);
+ try {
+ Thread.sleep(RETRY_DELAY_MS);
+ } catch (InterruptedException ignored) {
+ }
+ }
+ }
+ i++;
+ }
+ } finally {
+ if (w == null) {
+ // error
+ Config.setUpdateError(WeatherUpdateService.this, true);
+ }
+ // send broadcast that something has changed
+ Intent updateIntent = new Intent(ACTION_BROADCAST);
+ sendBroadcast(updateIntent);
+ }
+ });
+ }
+
+ private boolean checkPermissions() {
+ return checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &&
+ checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/weather/providers/METNorwayProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/weather/providers/METNorwayProvider.java
new file mode 100644
index 000000000..abd2108f4
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/weather/providers/METNorwayProvider.java
@@ -0,0 +1,379 @@
+package it.dhd.oxygencustomizer.weather.providers;
+
+import android.content.Context;
+import android.location.Location;
+import android.util.Log;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Locale;
+
+import java.util.TimeZone;
+
+import it.dhd.oxygencustomizer.weather.AbstractWeatherProvider;
+import it.dhd.oxygencustomizer.weather.WeatherInfo;
+import it.dhd.oxygencustomizer.weather.WeatherInfo.DayForecast;
+
+public class METNorwayProvider extends AbstractWeatherProvider {
+ private static final String TAG = "METNorwayProvider";
+
+ private static final String URL_WEATHER =
+ "https://api.met.no/weatherapi/locationforecast/2.0/?";
+
+ private static final SimpleDateFormat gmt0Format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
+ private static final SimpleDateFormat userTimeZoneFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
+
+ public METNorwayProvider(Context context) {
+ super(context);
+ initTimeZoneFormat();
+ }
+
+ public WeatherInfo getLocationWeather(Location location, boolean metric) {
+ String coordinates = String.format(Locale.US, PART_COORDINATES, location.getLatitude(), location.getLongitude());
+ return getAllWeather(coordinates, metric);
+ }
+
+ public WeatherInfo getCustomWeather(String id, boolean metric) {
+ return getAllWeather(id, metric);
+ }
+
+ private WeatherInfo getAllWeather(String coordinates, boolean metric) {
+ String url = URL_WEATHER + coordinates;
+ String response = retrieve(url);
+ if (response == null) {
+ return null;
+ }
+ log(TAG, "URL = " + url + " returning a response of " + response);
+
+ try {
+ JSONArray timeseries = new JSONObject(response).getJSONObject("properties").getJSONArray("timeseries");
+ JSONObject weather = timeseries.getJSONObject(0).getJSONObject("data").getJSONObject("instant").getJSONObject("details");
+
+ String symbolCode = timeseries.getJSONObject(0).getJSONObject("data").getJSONObject("next_1_hours").getJSONObject("summary").getString("symbol_code");
+ //Log.d("getAllWeather: symbolCode:", symbolCode);
+ String conditionDescription = getWeatherCondition(symbolCode);
+ //Log.d("getAllWeather: conditionDescription:", conditionDescription);
+ int weatherCode = arrayWeatherIconToCode[getPriorityCondition(symbolCode)];
+
+ // Check Available Night Icon
+ if(symbolCode.contains("_night") && (weatherCode == 30 || weatherCode == 32 || weatherCode == 34)) {
+ weatherCode -= 1;
+ }
+
+ String city = getWeatherDataLocality(coordinates);
+
+ WeatherInfo w = new WeatherInfo(mContext,
+ /* id */ coordinates,
+ /* cityId */ city,
+ /* condition */ conditionDescription,
+ /* conditionCode */ weatherCode,
+ /* temperature */ convertTemperature(weather.getDouble("air_temperature"), metric),
+ /* humidity */ (float) weather.getDouble("relative_humidity"),
+ /* wind */ convertWindSpeed(weather.getDouble("wind_speed"), metric),
+ /* windDir */ (int) weather.getDouble("wind_from_direction"),
+ metric,
+ parseForecasts(timeseries, metric),
+ System.currentTimeMillis());
+
+ log(TAG, "Weather updated: " + w);
+ return w;
+ } catch (JSONException e) {
+ Log.w(TAG, "Received malformed weather data (coordinates = " + coordinates + ")", e);
+ }
+
+ return null;
+ }
+
+ private ArrayList parseForecasts(JSONArray timeseries, boolean metric) throws JSONException {
+ ArrayList result = new ArrayList<>(5);
+ int count = timeseries.length();
+
+ if (count == 0) {
+ throw new JSONException("Empty forecasts array");
+ }
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.add(Calendar.DATE, -1);
+ String yesterday = new SimpleDateFormat("yyyy-MM-dd", Locale.US).format(calendar.getTime());
+
+ int whileIndex = 0;
+
+ while (convertTimeZone(timeseries.getJSONObject(whileIndex).getString("time")).contains(yesterday)) {
+ whileIndex++;
+ }
+
+ boolean endDay = (whileIndex == 0) && isEndDay(convertTimeZone(timeseries.getJSONObject(whileIndex).getString("time")));
+
+ for (int i = 0; i < 5; i++) {
+ DayForecast item;
+ try {
+ // temp = temperature
+ double temp_max = Double.MIN_VALUE;
+ double temp_min = Double.MAX_VALUE;
+ String day = getDay(i);
+ int symbolCode = 0;
+ int scSixToTwelve = 0; // symbolCode next_6_hours at 06:00
+ int scTwelveToEighteen = 0; // symbolCode next_6_hours at 12:00
+ int scSixToEighteen = 0; // symbolCode next_12_hours at 06:00
+ boolean hasFastCondition = false; // If true, there is no need to calculate "symbolCode" and "conditionDescription".
+ String conditionDescription = "";
+ String cdSixToEighteen = ""; // conditionDescription at 06:00 or 12:00
+
+ while (convertTimeZone(timeseries.getJSONObject(whileIndex).getString("time")).contains(day)) {
+ double tempI = timeseries.getJSONObject(whileIndex).getJSONObject("data").getJSONObject("instant").getJSONObject("details").getDouble("air_temperature");
+
+ if (tempI > temp_max) {
+ temp_max = tempI;
+ }
+ if (tempI < temp_min) {
+ temp_min = tempI;
+ }
+
+ boolean hasOneHour = timeseries.getJSONObject(whileIndex).getJSONObject("data").has("next_1_hours");
+ boolean hasSixHours = timeseries.getJSONObject(whileIndex).getJSONObject("data").has("next_6_hours");
+ boolean hasTwelveHours = timeseries.getJSONObject(whileIndex).getJSONObject("data").has("next_12_hours");
+
+ hasFastCondition = scSixToEighteen != 0 || (scSixToTwelve != 0 && scTwelveToEighteen != 0);
+
+ if (!hasFastCondition && ((i == 0 && endDay) || isMorningOrAfternoon(convertTimeZone(timeseries.getJSONObject(whileIndex).getString("time")), hasOneHour))) {
+ String stepHours = hasOneHour ? "next_1_hours" : "next_6_hours";
+
+ String stepTextSymbolCode = timeseries.getJSONObject(whileIndex).getJSONObject("data").getJSONObject(stepHours).getJSONObject("summary").getString("symbol_code");
+ int stepSymbolCode = getPriorityCondition(stepTextSymbolCode);
+
+ if (stepSymbolCode > symbolCode) {
+ symbolCode = stepSymbolCode;
+ conditionDescription = stepTextSymbolCode;
+ }
+
+ if(hasSixHours || hasTwelveHours) {
+ if (convertTimeZone(timeseries.getJSONObject(whileIndex).getString("time")).contains("T06")) {
+ String textSymbolCode = timeseries.getJSONObject(whileIndex).getJSONObject("data").getJSONObject(hasTwelveHours ? "next_12_hours" : "next_6_hours").getJSONObject("summary").getString("symbol_code");
+ if (hasTwelveHours) {
+ scSixToEighteen = getPriorityCondition(textSymbolCode);
+ cdSixToEighteen = timeseries.getJSONObject(whileIndex).getJSONObject("data").getJSONObject("next_12_hours").getJSONObject("summary").getString("symbol_code");
+ } else {
+ scSixToTwelve = getPriorityCondition(textSymbolCode);
+ cdSixToEighteen = textSymbolCode;
+ }
+ } else if (scSixToTwelve != 0 && convertTimeZone(timeseries.getJSONObject(whileIndex).getString("time")).contains("T12")) {
+ String textSymbolCode = timeseries.getJSONObject(whileIndex).getJSONObject("data").getJSONObject("next_6_hours").getJSONObject("summary").getString("symbol_code");
+ scTwelveToEighteen = getPriorityCondition(textSymbolCode);
+
+ if (scSixToTwelve < scTwelveToEighteen) {
+ cdSixToEighteen = textSymbolCode;
+ }
+ }
+ }
+ }
+ whileIndex++;
+ }
+
+ if(hasFastCondition) {
+ symbolCode = (scSixToEighteen != 0) ? scSixToEighteen : Math.max(scSixToTwelve, scTwelveToEighteen);
+ conditionDescription = cdSixToEighteen;
+ }
+
+ String formattedConditionDescription = getWeatherCondition(conditionDescription);
+ //Log.d("DayForecast: formattedConditionDescription:", formattedConditionDescription);
+
+ item = new DayForecast(
+ /* low */ convertTemperature(temp_min, metric),
+ /* high */ convertTemperature(temp_max, metric),
+ /* condition */ formattedConditionDescription,
+ /* conditionCode */ arrayWeatherIconToCode[symbolCode],
+ day,
+ metric);
+ } catch (JSONException e) {
+ Log.w(TAG, "Invalid forecast for day " + i + " creating dummy", e);
+ item = new DayForecast(
+ /* low */ 0,
+ /* high */ 0,
+ /* condition */ "",
+ /* conditionCode */ -1,
+ "NaN",
+ metric);
+ }
+ result.add(item);
+ }
+ // clients assume there are 5 entries - so fill with dummy if needed
+ if (result.size() < 5) {
+ for (int i = result.size(); i < 5; i++) {
+ Log.w(TAG, "Missing forecast for day " + i + " creating dummy");
+ DayForecast item = new DayForecast(
+ /* low */ 0,
+ /* high */ 0,
+ /* condition */ "",
+ /* conditionCode */ -1,
+ "NaN",
+ metric);
+ result.add(item);
+ }
+ }
+
+ return result;
+ }
+
+ private static final HashMap WEATHER_CONDITION_MAPPING = new HashMap<>();
+ static {
+ WEATHER_CONDITION_MAPPING.put("clearsky", "Clear Sky");
+ WEATHER_CONDITION_MAPPING.put("fair", "Mostly Clear");
+ WEATHER_CONDITION_MAPPING.put("partlycloudy", "Mostly Cloudy");
+ WEATHER_CONDITION_MAPPING.put("cloudy", "Cloudy");
+ WEATHER_CONDITION_MAPPING.put("rainshowers", "Showers");
+ WEATHER_CONDITION_MAPPING.put("rainshowersandthunder", "Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("sleetshowers", "Sleet Showers");
+ WEATHER_CONDITION_MAPPING.put("snowshowers", "Snow Showers");
+ WEATHER_CONDITION_MAPPING.put("rain", "Rainfall");
+ WEATHER_CONDITION_MAPPING.put("heavyrain", "Heavy Rainfall");
+ WEATHER_CONDITION_MAPPING.put("heavyrainandthunder", "Heavy Rainfall and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("sleet", "Sleet");
+ WEATHER_CONDITION_MAPPING.put("snow", "Snowfall");
+ WEATHER_CONDITION_MAPPING.put("snowandthunder", "Snowfall and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("fog", "Foggy");
+ WEATHER_CONDITION_MAPPING.put("sleetshowersandthunder", "Sleet Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("snowshowersandthunder", "Snow Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("rainandthunder", "Rainfall and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("sleetandthunder", "Sleet and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("lightrainshowersandthunder", "Light Rain Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("heavyrainshowersandthunder", "Heavy Rain Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("lightssleetshowersandthunder", "Light Sleet Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("heavysleetshowersandthunder", "Heavy Sleet Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("lightssnowshowersandthunder", "Light Snow Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("heavysnowshowersandthunder", "Heavy Snow Showers and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("lightrainandthunder", "Light Rain and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("lightsleetandthunder", "Light Sleet and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("heavysleetandthunder", "Heavy Sleet and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("lightsnowandthunder", "Light Snow and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("heavysnowandthunder", "Heavy Snow and Thunderstorms");
+ WEATHER_CONDITION_MAPPING.put("lightrainshowers", "Light Rain Showers");
+ WEATHER_CONDITION_MAPPING.put("heavyrainshowers", "Heavy Rain Showers");
+ WEATHER_CONDITION_MAPPING.put("lightsleetshowers", "Light Sleet Showers");
+ WEATHER_CONDITION_MAPPING.put("heavysleetshowers", "Heavy Sleet Showers");
+ WEATHER_CONDITION_MAPPING.put("lightsnowshowers", "Light Snow Showers");
+ WEATHER_CONDITION_MAPPING.put("heavysnowshowers", "Heavy Snow Showers");
+ WEATHER_CONDITION_MAPPING.put("lightrain", "Light Rain");
+ WEATHER_CONDITION_MAPPING.put("lightsleet", "Light Sleet");
+ WEATHER_CONDITION_MAPPING.put("heavysleet", "Heavy Sleet");
+ WEATHER_CONDITION_MAPPING.put("lightsnow", "Light Snow");
+ WEATHER_CONDITION_MAPPING.put("heavysnow", "Heavy Snow");
+ }
+
+ private static final HashMap SYMBOL_CODE_MAPPING = new HashMap<>();
+ static {
+ SYMBOL_CODE_MAPPING.put("clearsky", 1);
+ SYMBOL_CODE_MAPPING.put("fair", 2);
+ SYMBOL_CODE_MAPPING.put("partlycloudy", 3);
+ SYMBOL_CODE_MAPPING.put("cloudy", 4);
+ SYMBOL_CODE_MAPPING.put("rainshowers", 5);
+ SYMBOL_CODE_MAPPING.put("rainshowersandthunder", 6);
+ SYMBOL_CODE_MAPPING.put("sleetshowers", 7);
+ SYMBOL_CODE_MAPPING.put("snowshowers", 8);
+ SYMBOL_CODE_MAPPING.put("rain", 9);
+ SYMBOL_CODE_MAPPING.put("heavyrain", 10);
+ SYMBOL_CODE_MAPPING.put("heavyrainandthunder", 11);
+ SYMBOL_CODE_MAPPING.put("sleet", 12);
+ SYMBOL_CODE_MAPPING.put("snow", 13);
+ SYMBOL_CODE_MAPPING.put("snowandthunder", 14);
+ SYMBOL_CODE_MAPPING.put("fog", 15);
+ SYMBOL_CODE_MAPPING.put("sleetshowersandthunder", 20);
+ SYMBOL_CODE_MAPPING.put("snowshowersandthunder", 21);
+ SYMBOL_CODE_MAPPING.put("rainandthunder", 22);
+ SYMBOL_CODE_MAPPING.put("sleetandthunder", 23);
+ SYMBOL_CODE_MAPPING.put("lightrainshowersandthunder", 24);
+ SYMBOL_CODE_MAPPING.put("heavyrainshowersandthunder", 25);
+ SYMBOL_CODE_MAPPING.put("lightssleetshowersandthunder", 26);
+ SYMBOL_CODE_MAPPING.put("heavysleetshowersandthunder", 27);
+ SYMBOL_CODE_MAPPING.put("lightssnowshowersandthunder", 28);
+ SYMBOL_CODE_MAPPING.put("heavysnowshowersandthunder", 29);
+ SYMBOL_CODE_MAPPING.put("lightrainandthunder", 30);
+ SYMBOL_CODE_MAPPING.put("lightsleetandthunder", 31);
+ SYMBOL_CODE_MAPPING.put("heavysleetandthunder", 32);
+ SYMBOL_CODE_MAPPING.put("lightsnowandthunder", 33);
+ SYMBOL_CODE_MAPPING.put("heavysnowandthunder", 34);
+ SYMBOL_CODE_MAPPING.put("lightrainshowers", 40);
+ SYMBOL_CODE_MAPPING.put("heavyrainshowers", 41);
+ SYMBOL_CODE_MAPPING.put("lightsleetshowers", 42);
+ SYMBOL_CODE_MAPPING.put("heavysleetshowers", 43);
+ SYMBOL_CODE_MAPPING.put("lightsnowshowers", 44);
+ SYMBOL_CODE_MAPPING.put("heavysnowshowers", 45);
+ SYMBOL_CODE_MAPPING.put("lightrain", 46);
+ SYMBOL_CODE_MAPPING.put("lightsleet", 47);
+ SYMBOL_CODE_MAPPING.put("heavysleet", 48);
+ SYMBOL_CODE_MAPPING.put("lightsnow", 49);
+ SYMBOL_CODE_MAPPING.put("heavysnow", 50);
+ }
+
+ /* Thanks Chronus(app) */
+ private static final int[] arrayWeatherIconToCode = {-1, /*1*/ 32, /*2*/ 34, /*3*/ 30, /*4*/ 26, /*5*/ 40, /*6*/ 39, /*7*/ 6, /*8*/ 14, /*9*/ 11, /*10*/ 12, /*11*/ 4, /*12*/ 18, /*13*/ 16, /*14*/ 15, /*15*/ 20, /*16*/ -1, /*17*/ -1, /*18*/ -1, /*19*/ -1, /*20*/ 42, /*21*/ 42, /*22*/ 4, /*23*/ 6, /*24*/ 39, /*25*/ 39, /*26*/ 42, /*27*/ 42, /*28*/ 42, /*29*/ 42, /*30*/ 4, /*31*/ 6, /*32*/ 6, /*33*/ 15, /*34*/ 15, /*35*/ -1, /*36*/ -1, /*37*/ -1, /*38*/ -1, /*39*/ -1, /*40*/ 40, /*41*/ 40, /*42*/ 6, /*43*/ 6, /*44*/ 14, /*45*/ 14, /*46*/ 9, /*47*/ 18, /*48*/ 18, /*49*/ 16, /*50*/ 16};
+
+ private int getPriorityCondition(String condition) {
+ int endIndex = condition.indexOf("_");
+ if(endIndex != -1) {
+ condition = condition.substring(0, endIndex);
+ }
+ return SYMBOL_CODE_MAPPING.getOrDefault(condition, 0);
+ }
+
+ private String getWeatherCondition(String condition) {
+ int endIndex = condition.indexOf("_");
+ if (endIndex != -1) {
+ condition = condition.substring(0, endIndex);
+ }
+ return WEATHER_CONDITION_MAPPING.getOrDefault(condition, condition);
+ }
+
+ private void initTimeZoneFormat() {
+ gmt0Format.setTimeZone(TimeZone.getTimeZone("GMT"));
+ userTimeZoneFormat.setTimeZone(TimeZone.getDefault());
+ }
+
+ private String convertTimeZone(String tmp) {
+ try {
+ return userTimeZoneFormat.format(gmt0Format.parse(tmp));
+ } catch (ParseException e) {
+ return tmp;
+ }
+ }
+
+ private Boolean isMorningOrAfternoon(String time, boolean hasOneHour) {
+ int endI = hasOneHour ? 17 : 13;
+ for (int i = 6; i <= endI; i++) {
+ if(time.contains((i < 10) ? "T0":"T" + i)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private boolean isEndDay(String time) {
+ for (int i = 18; i <= 23; i++) {
+ if(time.contains("T" + i)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static float convertTemperature(double value, boolean metric) {
+ if (!metric) {
+ value = (value * 1.8) + 32;
+ }
+ return (float) value;
+ }
+
+ private static float convertWindSpeed(double valueMs, boolean metric) {
+ return (float) (valueMs * (metric ? 3.6 : 2.2369362920544));
+ }
+
+ public boolean shouldRetry() {
+ return false;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/weather/providers/OpenWeatherMapProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/weather/providers/OpenWeatherMapProvider.java
new file mode 100644
index 000000000..e1b783130
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/weather/providers/OpenWeatherMapProvider.java
@@ -0,0 +1,348 @@
+package it.dhd.oxygencustomizer.weather.providers;
+
+/*
+ * Copyright (C) 2013 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.location.Location;
+
+import android.text.TextUtils;
+import android.util.Log;
+
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.weather.AbstractWeatherProvider;
+import it.dhd.oxygencustomizer.weather.Config;
+import it.dhd.oxygencustomizer.weather.WeatherInfo;
+import it.dhd.oxygencustomizer.weather.WeatherInfo.DayForecast;
+
+public class OpenWeatherMapProvider extends AbstractWeatherProvider {
+ private static final String TAG = "OpenWeatherMapProvider";
+
+ private static final int FORECAST_DAYS = 5;
+ private static final String URL_WEATHER =
+ "https://api.openweathermap.org/data/2.5/onecall?%s&mode=json&units=%s&lang=%s&cnt=" + FORECAST_DAYS + "&appid=%s";
+
+ private List mKeys = new ArrayList<>();
+ private boolean mHasAPIKey;
+ private int mRequestNumber;
+
+ public OpenWeatherMapProvider(Context context) {
+ super(context);
+ loadKeys();
+ mHasAPIKey = getAPIKey() != null;
+ }
+
+ public WeatherInfo getCustomWeather(String id, boolean metric) {
+ return handleWeatherRequest(id, metric);
+ }
+
+ public WeatherInfo getLocationWeather(Location location, boolean metric) {
+ String coordinates = String.format(Locale.US, PART_COORDINATES, location.getLatitude(), location.getLongitude());
+ return handleWeatherRequest(coordinates, metric);
+ }
+
+ private WeatherInfo handleWeatherRequest(String selection, boolean metric) {
+ if (!mHasAPIKey) {
+ return null;
+ }
+ mRequestNumber++;
+ String units = metric ? "metric" : "imperial";
+ String locale = getLanguageCode();
+ String conditionUrl = String.format(Locale.US, URL_WEATHER, selection, units, locale, getAPIKey());
+ String conditionResponse = retrieve(conditionUrl);
+ if (conditionResponse == null) {
+ return null;
+ }
+ log(TAG, "Condition URL = " + conditionUrl + " returning a response of " + conditionResponse);
+
+ try {
+ JSONObject conditions = new JSONObject(conditionResponse);
+ JSONObject conditionData = conditions.getJSONObject("current");
+ JSONObject weather = conditionData.getJSONArray("weather").getJSONObject(0);
+ ArrayList forecasts =
+ parseForecasts(conditions.getJSONArray("daily"), metric);
+ float windSpeed = (float) conditionData.getDouble("wind_speed");
+ if (metric) {
+ // speeds are in m/s so convert to our common metric unit km/h
+ windSpeed *= 3.6f;
+ }
+
+ String city = getWeatherDataLocality(selection);
+
+ WeatherInfo w = new WeatherInfo(mContext, selection, city,
+ /* condition */ weather.getString("main"),
+ /* conditionCode */ mapConditionIconToCode(
+ weather.getString("icon"), weather.getInt("id")),
+ /* temperature */ sanitizeTemperature(conditionData.getDouble("temp"), metric),
+ /* humidity */ (float) conditionData.getDouble("humidity"),
+ /* wind */ windSpeed,
+ /* windDir */ conditionData.has("wind_deg") ? conditionData.getInt("wind_deg") : 0,
+ metric,
+ forecasts,
+ System.currentTimeMillis());
+
+ log(TAG, "Weather updated: " + w);
+ return w;
+ } catch (JSONException e) {
+ Log.w(TAG, "Received malformed weather data (selection = " + selection
+ + ", lang = " + locale + ")", e);
+ }
+
+ return null;
+ }
+
+ private ArrayList parseForecasts(JSONArray forecasts, boolean metric) throws JSONException {
+ ArrayList result = new ArrayList();
+ int count = forecasts.length();
+
+ if (count == 0) {
+ throw new JSONException("Empty forecasts array");
+ }
+ for (int i = 0; i < count; i++) {
+ String day = getDay(i);
+ DayForecast item = null;
+ try {
+ JSONObject forecast = forecasts.getJSONObject(i);
+ JSONObject conditionData = forecast.getJSONObject("temp");
+ JSONObject data = forecast.getJSONArray("weather").getJSONObject(0);
+ item = new DayForecast(
+ /* low */ sanitizeTemperature(conditionData.getDouble("min"), metric),
+ /* high */ sanitizeTemperature(conditionData.getDouble("max"), metric),
+ /* condition */ data.getString("main"),
+ /* conditionCode */ mapConditionIconToCode(
+ data.getString("icon"), data.getInt("id")),
+ day,
+ metric);
+ } catch (JSONException e) {
+ Log.w(TAG, "Invalid forecast for day " + i + " creating dummy", e);
+ item = new DayForecast(
+ /* low */ 0,
+ /* high */ 0,
+ /* condition */ "",
+ /* conditionCode */ -1,
+ "NaN",
+ metric);
+ }
+ result.add(item);
+ }
+ // clients assume there are 5 entries - so fill with dummy if needed
+ if (result.size() < 5) {
+ for (int i = result.size(); i < 5; i++) {
+ Log.w(TAG, "Missing forecast for day " + i + " creating dummy");
+ DayForecast item = new DayForecast(
+ /* low */ 0,
+ /* high */ 0,
+ /* condition */ "",
+ /* conditionCode */ -1,
+ "NaN",
+ metric);
+ result.add(item);
+ }
+ }
+ return result;
+ }
+
+ // OpenWeatherMap sometimes returns temperatures in Kelvin even if we ask it
+ // for deg C or deg F. Detect this and convert accordingly.
+ private static float sanitizeTemperature(double value, boolean metric) {
+ // threshold chosen to work for both C and F. 170 deg F is hotter
+ // than the hottest place on earth.
+ if (value > 170) {
+ // K -> deg C
+ value -= 273.15;
+ if (!metric) {
+ // deg C -> deg F
+ value = (value * 1.8) + 32;
+ }
+ }
+ return (float) value;
+ }
+
+ private static final HashMap LANGUAGE_CODE_MAPPING = new HashMap();
+
+ static {
+ LANGUAGE_CODE_MAPPING.put("bg-", "bg");
+ LANGUAGE_CODE_MAPPING.put("de-", "de");
+ LANGUAGE_CODE_MAPPING.put("es-", "sp");
+ LANGUAGE_CODE_MAPPING.put("fi-", "fi");
+ LANGUAGE_CODE_MAPPING.put("fr-", "fr");
+ LANGUAGE_CODE_MAPPING.put("it-", "it");
+ LANGUAGE_CODE_MAPPING.put("nl-", "nl");
+ LANGUAGE_CODE_MAPPING.put("pl-", "pl");
+ LANGUAGE_CODE_MAPPING.put("pt-", "pt");
+ LANGUAGE_CODE_MAPPING.put("ro-", "ro");
+ LANGUAGE_CODE_MAPPING.put("ru-", "ru");
+ LANGUAGE_CODE_MAPPING.put("se-", "se");
+ LANGUAGE_CODE_MAPPING.put("tr-", "tr");
+ LANGUAGE_CODE_MAPPING.put("uk-", "ua");
+ LANGUAGE_CODE_MAPPING.put("zh-CN", "zh_cn");
+ LANGUAGE_CODE_MAPPING.put("zh-TW", "zh_tw");
+ }
+
+ private String getLanguageCode() {
+ Locale locale = mContext.getResources().getConfiguration().locale;
+ String selector = locale.getLanguage() + "-" + locale.getCountry();
+
+ for (Map.Entry entry : LANGUAGE_CODE_MAPPING.entrySet()) {
+ if (selector.startsWith(entry.getKey())) {
+ return entry.getValue();
+ }
+ }
+
+ return "en";
+ }
+
+ private int mapConditionIconToCode(String icon, int conditionId) {
+
+ // First, use condition ID for specific cases
+ return switch (conditionId) {
+ // Thunderstorms
+ // thunderstorm with heavy rain
+ // thunderstorm with heavy drizzle
+ case 202, 232, 211 -> // thunderstorm
+ 4;
+ case 212 -> // heavy thunderstorm
+ 3; // ragged thunderstorm
+ // thunderstorm with drizzle
+ case 221, 231, 201 -> // thunderstorm with rain
+ 38; // thunderstorm with light drizzle
+ // thunderstorm with light rain
+ case 230, 200, 210 -> // light thunderstorm
+ 37;
+
+ // Drizzle
+ // light intensity drizzle
+ // drizzle
+ // heavy intensity drizzle
+ // light intensity drizzle rain
+ // drizzle rain
+ // heavy intensity drizzle rain
+ // shower rain and drizzle
+ // heavy shower rain and drizzle
+ case 300, 301, 302, 310, 311, 312, 313, 314, 321 -> // shower drizzle
+ 9;
+
+ // Rain
+ // light rain
+ // moderate rain
+ // light intensity shower rain
+ // shower rain
+ case 500, 501, 520, 521, 531 -> // ragged shower rain
+ 11; // heavy intensity rain
+ // very heavy rain
+ // extreme rain
+ case 502, 503, 504, 522 -> // heavy intensity shower rain
+ 12;
+ case 511 -> // freezing rain
+ 10;
+
+ // Snow
+ case 600, 620 -> 14; // light snow
+ case 601, 621 -> 16; // snow
+ case 602, 622 -> 41; // heavy snow
+ case 611, 612 -> 18; // sleet
+ case 615, 616 -> 5; // rain and snow
+
+ // Atmosphere
+ case 741 -> // fog
+ 20; // smoke
+ case 711, 762 -> // volcanic ash
+ 22; // mist
+ case 701, 721 -> // haze
+ 21; // sand/dust whirls
+ // sand
+ case 731, 751, 761 -> // dust
+ 19;
+ case 771 -> // squalls
+ 23;
+ case 781 -> // tornado
+ 0;
+
+ // clouds
+ case 800 -> // clear sky
+ icon.endsWith("n") ? 31 : 32; // day or night
+ case 801 -> // few clouds
+ icon.endsWith("n") ? 33 : 34; // day or night
+ case 802 -> // scattered clouds
+ icon.endsWith("n") ? 27 : 28; // day or night
+ // broken clouds
+ case 803, 804 -> // overcast clouds
+ icon.endsWith("n") ? 29 : 30; // day or night
+
+ // Extreme
+ case 900 -> 0; // tornado
+ case 901 -> 1; // tropical storm
+ case 902 -> 2; // hurricane
+ case 903 -> 25; // cold
+ case 904 -> 36; // hot
+ case 905 -> 24; // windy
+ case 906 -> 17;
+ default -> // hail
+ -1;
+ };
+
+ }
+
+ private void loadKeys() {
+ try {
+ String key = mContext.getResources().getString(R.string.owm_api_key_1);
+ if (!TextUtils.isEmpty(key)) {
+ mKeys.add(key);
+ }
+ } catch (Resources.NotFoundException ignored) {
+ }
+ try {
+ String key = mContext.getResources().getString(R.string.owm_api_key_2);
+ if (!TextUtils.isEmpty(key)) {
+ mKeys.add(key);
+ }
+ } catch (Resources.NotFoundException ignored) {
+ }
+ log(TAG, "use API keys = " + mKeys);
+ }
+
+ private String getAPIKey() {
+ String customKey = Config.getOwmKey(mContext);
+ if (!TextUtils.isEmpty(customKey)) {
+ return customKey;
+ }
+ if (!mKeys.isEmpty()) {
+ int key = mRequestNumber % mKeys.size();
+ log(TAG, "use API key = " + key);
+ return mKeys.get(key);
+ }
+ try {
+ return mContext.getResources().getString(R.string.owm_api_key);
+ } catch (Resources.NotFoundException ignored) {
+ }
+ return null;
+ }
+
+ public boolean shouldRetry() {
+ return false;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/weather/receivers/SystemReceiver.java b/app/src/main/java/it/dhd/oxygencustomizer/weather/receivers/SystemReceiver.java
new file mode 100644
index 000000000..3ae499419
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/weather/receivers/SystemReceiver.java
@@ -0,0 +1,44 @@
+package it.dhd.oxygencustomizer.weather.receivers;
+
+/*
+ * Copyright (C) 2015 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import it.dhd.oxygencustomizer.weather.Config;
+import it.dhd.oxygencustomizer.weather.WeatherUpdateService;
+
+public class SystemReceiver extends BroadcastReceiver {
+ private static final String TAG = "WeatherService:SystemReceiver";
+ private static final boolean DEBUG = false;
+
+ @Override
+ public void onReceive(final Context context, Intent intent) {
+ final String action = intent.getAction();
+ if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
+ if (Config.isEnabled(context)) {
+ if (DEBUG) Log.d(TAG, "boot completed kick alarm");
+ WeatherUpdateService.scheduleUpdatePeriodic(context);
+ WeatherUpdateService.scheduleUpdateNow(context);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/MainHook.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/MainHook.java
new file mode 100644
index 000000000..b05abef23
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/MainHook.java
@@ -0,0 +1,27 @@
+package it.dhd.oxygencustomizer.xposed;
+
+import de.robv.android.xposed.IXposedHookInitPackageResources;
+import de.robv.android.xposed.IXposedHookLoadPackage;
+import de.robv.android.xposed.IXposedHookZygoteInit;
+import de.robv.android.xposed.callbacks.XC_InitPackageResources;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+
+public class MainHook implements IXposedHookZygoteInit, IXposedHookInitPackageResources, IXposedHookLoadPackage {
+ ResourceManager ResourceManager = new ResourceManager();
+ XPLauncher XPLauncher = new XPLauncher();
+ @Override
+ public void handleInitPackageResources(XC_InitPackageResources.InitPackageResourcesParam initPackageResourcesParam) throws Throwable {
+ ResourceManager.handleInitPackageResources(initPackageResourcesParam);
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable
+ {
+ XPLauncher.handleLoadPackage(loadPackageParam);
+ }
+
+ @Override
+ public void initZygote(StartupParam startupParam) throws Throwable {
+ ResourceManager.initZygote(startupParam);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/ModPacks.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/ModPacks.java
new file mode 100644
index 000000000..02c8a71a1
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/ModPacks.java
@@ -0,0 +1,94 @@
+package it.dhd.oxygencustomizer.xposed;
+
+import java.util.ArrayList;
+
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.hooks.HookTester;
+import it.dhd.oxygencustomizer.xposed.hooks.framework.Buttons;
+import it.dhd.oxygencustomizer.xposed.hooks.launcher.Launcher;
+import it.dhd.oxygencustomizer.xposed.hooks.settings.CustomShortcut;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.AdaptivePlayback;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.AudioDataProvider;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.FeatureEnabler;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.MiscMods;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.PulseViewHook;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.VolumePanel;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.lockscreen.Lockscreen;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.lockscreen.LockscreenClock;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.navbar.GestureNavbarManager;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.BatteryBar;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.BatteryStyleManager;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.HeaderClock;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.HeaderImage;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.QSTiles;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.QsTileCustomization;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.StatusbarClock;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.StatusbarIcons;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.StatusbarMods;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar.StatusbarNotification;
+
+public class ModPacks {
+
+ public static ArrayList> getMods(String packageName) {
+ ArrayList> modPacks = new ArrayList<>();
+
+ //Should be loaded before others
+ modPacks.add(HookTester.class);
+ modPacks.add(SettingsLibUtilsProvider.class);
+
+
+ switch (packageName) {
+ case Constants.Packages.FRAMEWORK -> modPacks.add(Buttons.class);
+ case Constants.Packages.SYSTEM_UI -> {
+ if (!XPLauncher.isChildProcess) {
+ // Battery Data Provider
+ modPacks.add(BatteryDataProvider.class);
+
+ // System Classes We need
+ modPacks.add(OpUtils.class);
+
+ // Oplus Feature Enabler
+ modPacks.add(FeatureEnabler.class);
+
+ // AOD
+ //modPacks.add(AOD.class);
+
+ // Statusbar
+ modPacks.add(StatusbarMods.class);
+ modPacks.add(HeaderClock.class);
+ modPacks.add(StatusbarNotification.class);
+ modPacks.add(StatusbarClock.class);
+ modPacks.add(StatusbarIcons.class);
+ modPacks.add(BatteryStyleManager.class);
+ // QS
+ modPacks.add(QSTiles.class);
+ modPacks.add(QsTileCustomization.class);
+ modPacks.add(HeaderImage.class);
+ // Pulse View
+ modPacks.add(AudioDataProvider.class);
+ modPacks.add(PulseViewHook.class);
+
+ // Lockscreen
+ modPacks.add(Lockscreen.class);
+ modPacks.add(LockscreenClock.class);
+
+ // Volume Panel
+ modPacks.add(VolumePanel.class);
+
+ modPacks.add(GestureNavbarManager.class);
+ modPacks.add(BatteryBar.class);
+ modPacks.add(AdaptivePlayback.class);
+
+ modPacks.add(MiscMods.class);
+ }
+ }
+ case Constants.Packages.SETTINGS -> modPacks.add(CustomShortcut.class);
+ case Constants.Packages.LAUNCHER -> modPacks.add(Launcher.class);
+ }
+
+ return modPacks;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/ResourceManager.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/ResourceManager.java
new file mode 100644
index 000000000..e8aac1831
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/ResourceManager.java
@@ -0,0 +1,28 @@
+package it.dhd.oxygencustomizer.xposed;
+
+import android.content.res.Resources;
+
+import java.util.HashMap;
+
+import de.robv.android.xposed.IXposedHookInitPackageResources;
+import de.robv.android.xposed.IXposedHookZygoteInit;
+import de.robv.android.xposed.callbacks.XC_InitPackageResources;
+
+public class ResourceManager implements IXposedHookInitPackageResources, IXposedHookZygoteInit {
+
+ @SuppressWarnings({"FieldCanBeLocal", "unused"})
+ private String MODULE_PATH;
+ public final static HashMap resparams = new HashMap<>();
+ public static Resources modRes;
+
+ @Override
+ public void initZygote(StartupParam startupParam) throws Throwable {
+ MODULE_PATH = startupParam.modulePath;
+ }
+
+ @Override
+ public void handleInitPackageResources(XC_InitPackageResources.InitPackageResourcesParam resparam) throws Throwable
+ {
+ resparams.put(resparam.packageName, resparam);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/XPLauncher.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/XPLauncher.java
new file mode 100644
index 000000000..b7788635e
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/XPLauncher.java
@@ -0,0 +1,144 @@
+package it.dhd.oxygencustomizer.xposed;
+
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static it.dhd.oxygencustomizer.BuildConfig.APPLICATION_ID;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.utils.BootLoopProtector.isBootLooped;
+
+import android.annotation.SuppressLint;
+import android.app.Instrumentation;
+import android.content.Context;
+
+import java.util.ArrayList;
+import java.util.concurrent.CompletableFuture;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+
+public class XPLauncher {
+
+ public static boolean isChildProcess = false;
+ public static String processName = "";
+
+ public static ArrayList runningMods = new ArrayList<>();
+ public Context mContext = null;
+
+ @SuppressLint("StaticFieldLeak")
+ static XPLauncher instance;
+
+ /**
+ * @noinspection FieldCanBeLocal
+ */
+ public XPLauncher() {
+ instance = this;
+ }
+
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ try {
+ isChildProcess = lpparam.processName.contains(":");
+ processName = lpparam.processName;
+ } catch (Throwable ignored) {
+ isChildProcess = false;
+ }
+
+
+ if (lpparam.packageName.equals(Constants.Packages.FRAMEWORK)) {
+ Class> PhoneWindowManagerExtImpl = findClass("com.android.server.policy.PhoneWindowManagerExtImpl", lpparam.classLoader);
+ hookAllMethods(PhoneWindowManagerExtImpl, "overrideInit", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ log("packageName Framework: PhoneWindowManagerExtImpl overrideInit ");
+ try {
+ log("PhoneWindowManagerExtImpl " + (mContext != null));
+ mContext = (Context) param.args[1];
+
+ ResourceManager.modRes = mContext.createPackageContext(APPLICATION_ID, Context.CONTEXT_IGNORE_SECURITY)
+ .getResources();
+
+ XPrefs.init(mContext);
+
+ CompletableFuture.runAsync(() -> waitForXprefsLoad(lpparam));
+ } catch (Throwable t) {
+ log("fault in PhoneWindowManagerExtImpl: " + t);
+ }
+ }
+ });
+ } else {
+ findAndHookMethod(Instrumentation.class, "newApplication", ClassLoader.class, String.class, Context.class, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ try {
+ if ((mContext == null || lpparam.packageName.equals(Constants.Packages.TELECOM_SERVER_PACKAGE)) && param.args[2] != null) { //telecom service launches as a secondary process in framework, but has its own package name. context is not null when it loads
+ mContext = (Context) param.args[2];
+
+ ResourceManager.modRes = mContext.createPackageContext(APPLICATION_ID, Context.CONTEXT_IGNORE_SECURITY)
+ .getResources();
+
+ XPrefs.init(mContext);
+
+ waitForXprefsLoad(lpparam);
+ }
+ } catch (Throwable t) {
+ // Context is null
+ log("Instrumentation newApplication: " + t);
+ }
+ }
+ });
+ }
+ }
+
+ private void onXPrefsReady(XC_LoadPackage.LoadPackageParam lpparam) {
+ if (isBootLooped(lpparam.packageName)) {
+ log(String.format("Oxygen Customizer: Possible bootloop in %s. Will not load for now", lpparam.packageName));
+ return;
+ }
+
+ new SystemUtils(mContext);
+ XPrefs.setPackagePrefs(lpparam.packageName);
+
+ loadModpacks(lpparam);
+ }
+
+ private void loadModpacks(XC_LoadPackage.LoadPackageParam lpparam) {
+ for (Class extends XposedMods> mod : ModPacks.getMods(lpparam.packageName)) {
+ try {
+ XposedMods instance = mod.getConstructor(Context.class).newInstance(mContext);
+ if (!instance.listensTo(lpparam.packageName)) continue;
+ try {
+ instance.updatePrefs();
+ } catch (Throwable ignored) {
+ }
+ instance.handleLoadPackage(lpparam);
+ runningMods.add(instance);
+ } catch (Throwable T) {
+ log("Start Error Dump - Occurred in " + mod.getName());
+ log(T);
+ }
+ }
+ }
+
+ private void waitForXprefsLoad(XC_LoadPackage.LoadPackageParam lpparam) {
+ while (true) {
+ try {
+ Xprefs.getBoolean("LoadTestBooleanValue", false);
+ break;
+ } catch (Throwable ignored) {
+ try {
+ //noinspection BusyWait
+ Thread.sleep(1000);
+ } catch (Throwable ignored1) {
+ }
+ }
+ }
+
+ log("Oxygen Customizer Version: " + BuildConfig.VERSION_NAME + " package: " + lpparam.packageName + " loaded");
+
+ onXPrefsReady(lpparam);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/XPrefs.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/XPrefs.java
new file mode 100644
index 000000000..16ff41a04
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/XPrefs.java
@@ -0,0 +1,43 @@
+package it.dhd.oxygencustomizer.xposed;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.utils.ExtendedRemotePreferences;
+
+public class XPrefs {
+
+ @SuppressLint("StaticFieldLeak")
+ public static ExtendedRemotePreferences Xprefs;
+ private static String packageName;
+
+ private static final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, key) -> loadEverything(packageName, key);
+ public static void init(Context context) {
+ packageName = context.getPackageName();
+
+ Xprefs = (ExtendedRemotePreferences) new ExtendedRemotePreferences(context, BuildConfig.APPLICATION_ID, BuildConfig.APPLICATION_ID + "_preferences", true);
+
+ Xprefs.registerOnSharedPreferenceChangeListener(listener);
+ }
+
+
+ public static void loadEverything(String packageName, String... key) {
+ if (key.length > 0 && (key[0] == null || Constants.Preferences.General.PREF_UPDATE_EXCLUSIONS.stream().anyMatch(exclusion -> key[0].startsWith(exclusion))))
+ return;
+
+ setPackagePrefs(packageName);
+
+ for (XposedMods thisMod : XPLauncher.runningMods) {
+ thisMod.updatePrefs(key);
+ }
+ }
+
+ public static void setPackagePrefs(String packageName) {
+ if (Constants.Packages.SYSTEM_UI.equals(packageName) && !XPLauncher.isChildProcess) {
+ //Overlays.setAll(false);
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/XposedMods.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/XposedMods.java
new file mode 100644
index 000000000..2730da74a
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/XposedMods.java
@@ -0,0 +1,19 @@
+package it.dhd.oxygencustomizer.xposed;
+
+import android.content.Context;
+
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+
+public abstract class XposedMods {
+ protected Context mContext;
+
+ public XposedMods(Context context) {
+ mContext = context;
+ }
+
+ public abstract void updatePrefs(String... Key);
+
+ public abstract void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable;
+
+ public abstract boolean listensTo(String packageName);
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/BatteryDrawable.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/BatteryDrawable.kt
new file mode 100644
index 000000000..15c0e270d
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/BatteryDrawable.kt
@@ -0,0 +1,73 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.content.Context
+import android.content.res.TypedArray
+import android.graphics.Color
+import android.graphics.drawable.Drawable
+
+abstract class BatteryDrawable : Drawable() {
+
+ protected var isRotation = false
+ protected var scaledFillAlpha = false
+ protected var scaledPerimeterAlpha = false
+ protected var customBlendColor = false
+ protected var customFillRainbow = false
+ protected var customChargingIcon = false
+
+ protected var chargingColor: Int = Color.TRANSPARENT
+ protected var fastChargingColor: Int = Color.TRANSPARENT
+ protected var customFillColor: Int = Color.BLACK
+ protected var customFillGradColor: Int = Color.BLACK
+ protected var powerSaveColor: Int = Color.TRANSPARENT
+ protected var powerSaveFillColor: Int = Color.TRANSPARENT
+
+ open fun customizeBatteryDrawable(
+ isRotation: Boolean,
+ scaledPerimeterAlpha: Boolean,
+ scaledFillAlpha: Boolean,
+ customBlendColor: Boolean,
+ customFillRainbow: Boolean,
+ customFillColor: Int,
+ customFillGradColor: Int,
+ chargingColor: Int,
+ fastChargingColor: Int,
+ powerSaveColor: Int,
+ powerSaveFillColor: Int,
+ customChargingIcon: Boolean
+ ) {
+ this.isRotation = isRotation
+ this.scaledPerimeterAlpha = scaledPerimeterAlpha
+ this.scaledFillAlpha = scaledFillAlpha
+ this.customBlendColor = customBlendColor
+ this.customFillRainbow = customFillRainbow
+ this.customFillColor = customFillColor
+ this.customFillGradColor = customFillGradColor
+ this.chargingColor = chargingColor
+ this.fastChargingColor = fastChargingColor
+ this.powerSaveColor = powerSaveColor
+ this.powerSaveFillColor = powerSaveFillColor
+ this.customChargingIcon = customChargingIcon
+
+ invalidateSelf()
+ }
+
+ abstract fun setBatteryLevel(mLevel: Int)
+ abstract fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int)
+ abstract fun setShowPercentEnabled(showPercent: Boolean)
+ abstract fun setChargingEnabled(charging: Boolean, isFast: Boolean)
+ abstract fun setPowerSavingEnabled(powerSaveEnabled: Boolean)
+
+ fun getColorAttrDefaultColor(context: Context, attr: Int, defValue: Int): Int {
+ val obtainStyledAttributes: TypedArray = context.obtainStyledAttributes(intArrayOf(attr))
+ val color: Int = obtainStyledAttributes.getColor(0, defValue)
+ obtainStyledAttributes.recycle()
+ return color
+ }
+
+ companion object {
+ var showPercent = false
+ var charging = false
+ var fastCharging = false
+ var powerSaveEnabled = false
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/CircleBattery.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/CircleBattery.java
new file mode 100644
index 000000000..393528060
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/CircleBattery.java
@@ -0,0 +1,424 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles;
+
+/* Modified from Iconify
+ * https://github.com/Mahmud0808/Iconify/tree/00db9657a129663b1a26815857c5eba7eacb8657
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see [http://www.gnu.org/licenses/].
+ */
+
+import static android.graphics.Paint.ANTI_ALIAS_FLAG;
+import static android.graphics.Paint.Align.CENTER;
+import static android.graphics.Paint.Style.STROKE;
+import static android.graphics.Typeface.BOLD;
+import static java.lang.Math.round;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_CUSTOM_RLANDSCAPE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DOTTED_CIRCLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_BLEND_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_STYLE;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.animation.ValueAnimator;
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.ColorFilter;
+import android.graphics.DashPathEffect;
+import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.PathEffect;
+import android.graphics.PixelFormat;
+import android.graphics.RectF;
+import android.graphics.SweepGradient;
+import android.graphics.Typeface;
+
+import androidx.annotation.ColorInt;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.graphics.ColorUtils;
+import androidx.core.graphics.PathParser;
+import androidx.interpolator.view.animation.FastOutSlowInInterpolator;
+
+import java.util.List;
+
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider;
+import it.dhd.oxygencustomizer.xposed.utils.AlphaRefreshedPaint;
+
+public class CircleBattery extends BatteryDrawable {
+
+ private static final String WARNING_STRING = "!";
+ private static final int CRITICAL_LEVEL = 5;
+ private static final int CIRCLE_DIAMETER = 45; //relative to dash effect size. Size doesn't matter as finally it gets scaled by parent
+ private static final PathEffect DASH_PATH_EFFECT = new DashPathEffect(new float[]{3f, 2f}, 0f);
+ private final Context mContext;
+ private final boolean xposed;
+ private int mChargingColor = 0xFF34C759;
+ private int mPowerSaveColor = 0xFFFFA500;
+ private int mFastChargingColor = mChargingColor;
+ private boolean mShowPercentage = false;
+ private int mDiameter;
+ private final RectF mFrame = new RectF();
+ private int mFGColor = Color.WHITE;
+ private final Paint mTextPaint = new AlphaRefreshedPaint(ANTI_ALIAS_FLAG);
+ private final Paint mFramePaint = new AlphaRefreshedPaint(ANTI_ALIAS_FLAG);
+ private final Paint mBatteryPaint = new AlphaRefreshedPaint(ANTI_ALIAS_FLAG);
+ private final Paint mWarningTextPaint = new AlphaRefreshedPaint(ANTI_ALIAS_FLAG);
+ private final Paint mBoltPaint = new AlphaRefreshedPaint(ANTI_ALIAS_FLAG);
+ private final ValueAnimator mBoltAlphaAnimator;
+ private int[] mShadeColors;
+ private float[] mShadeLevels;
+ private Path mBoltPath;
+ private float mAlphaPct;
+ private boolean powerSaveEnabled = false;
+ private boolean charging = false;
+ private boolean isFastCharging = false;
+ private int batteryLevel = 0;
+ private int[] batteryColors;
+ private List batteryLevels;
+ private boolean customBlendColor = false;
+
+ public CircleBattery(Context context, int frameColor, boolean xposed) {
+ super();
+ mContext = context;
+ this.xposed = xposed;
+
+ mFramePaint.setDither(true);
+ mFramePaint.setStyle(STROKE);
+
+ mTextPaint.setTypeface(Typeface.create("sans-serif-condensed", BOLD));
+ mTextPaint.setTextAlign(CENTER);
+
+ mWarningTextPaint.setTypeface(Typeface.create("sans-serif", BOLD));
+ mWarningTextPaint.setTextAlign(CENTER);
+
+ mBatteryPaint.setDither(true);
+ mBatteryPaint.setStyle(STROKE);
+
+ setColors(frameColor, frameColor, frameColor);
+
+ setMeterStyle(xposed ? Integer.parseInt(Xprefs.getString(CUSTOM_BATTERY_STYLE, String.valueOf(BATTERY_STYLE_CUSTOM_RLANDSCAPE))) : 0);
+
+ mBoltAlphaAnimator = ValueAnimator.ofInt(255, 255, 255, 45);
+
+ mBoltAlphaAnimator.setDuration(2000);
+ mBoltAlphaAnimator.setInterpolator(new FastOutSlowInInterpolator());
+ mBoltAlphaAnimator.setRepeatMode(ValueAnimator.REVERSE);
+ mBoltAlphaAnimator.setRepeatCount(ValueAnimator.INFINITE);
+
+ mBoltAlphaAnimator.addUpdateListener(valueAnimator -> invalidateSelf());
+ }
+
+ @Override
+ public void setShowPercentEnabled(boolean showPercent) {
+ mShowPercentage = showPercent;
+ postInvalidate();
+ }
+
+ @Override
+ public void setChargingEnabled(boolean charging, boolean isFast) {
+ this.charging = charging;
+ this.isFastCharging = isFast;
+ postInvalidate();
+ }
+
+ @Override
+ public void setBatteryLevel(int mLevel) {
+ batteryLevel = mLevel;
+ invalidateSelf();
+ }
+
+ public void setMeterStyle(int batteryStyle) {
+ mFramePaint.setPathEffect(batteryStyle == BATTERY_STYLE_DOTTED_CIRCLE ? DASH_PATH_EFFECT : null);
+ mBatteryPaint.setPathEffect(batteryStyle == BATTERY_STYLE_DOTTED_CIRCLE ? DASH_PATH_EFFECT : null);
+ }
+
+ @Override
+ public void setBounds(int left, int top, int right, int bottom) {
+ super.setBounds(left, top, right, bottom);
+ updateSize();
+ }
+
+ @Override
+ public void setPowerSavingEnabled(boolean powerSaveEnabled) {
+ this.powerSaveEnabled = powerSaveEnabled;
+ postInvalidate();
+ }
+
+ @Override
+ public void setColors(int fgColor, int bgColor, int singleToneColor) {
+ mFGColor = fgColor;
+
+ mBoltPaint.setColor(mFGColor);
+ mFramePaint.setColor(bgColor);
+ mTextPaint.setColor(mFGColor);
+
+ initColors();
+
+ invalidateSelf();
+ }
+
+ private void initColors() {
+ if (xposed)
+ customBlendColor = Xprefs.getBoolean(CUSTOM_BATTERY_BLEND_COLOR, false);
+ else
+ customBlendColor = false;
+
+ if (customBlendColor && getChargingColor() != Color.BLACK) {
+ mChargingColor = getChargingColor();
+ } else {
+ mChargingColor = 0xFF34C759;
+ }
+
+ if (customBlendColor && getFastChargingColor() != Color.BLACK) {
+ mFastChargingColor = getFastChargingColor();
+ } else {
+ mFastChargingColor = mChargingColor;
+ }
+
+
+ if (customBlendColor && getPowerSaveFillColor() != Color.BLACK) {
+ mPowerSaveColor = getPowerSaveFillColor();
+ } else {
+ if (xposed)
+ mPowerSaveColor = SettingsLibUtilsProvider.getColorAttrDefaultColor(android.R.attr.colorError, mContext);
+ else
+ getColorAttrDefaultColor(mContext, android.R.attr.colorError, Color.RED);
+ }
+
+ @ColorInt int fillColor = getCustomFillColor();
+ @ColorInt int fillGradColor = getCustomFillGradColor();
+
+ if (customBlendColor) {
+ if (fillColor != Color.BLACK && fillGradColor != Color.BLACK) {
+ batteryColors = new int[]{fillGradColor, ColorUtils.blendARGB(fillColor, Color.WHITE, 0.4f)};
+ } else if (fillColor != Color.BLACK) {
+ batteryColors = new int[]{Color.RED, ColorUtils.blendARGB(fillColor, Color.WHITE, 0.4f)};
+ } else if (fillGradColor != Color.BLACK) {
+ batteryColors = new int[]{fillGradColor, Color.YELLOW};
+ } else {
+ batteryColors = new int[]{Color.RED, Color.YELLOW};
+ }
+ } else {
+ batteryColors = new int[]{mFGColor, mFGColor};
+ }
+
+ if (customBlendColor) {
+ batteryLevels = List.of(10, 30);
+ } else {
+ batteryLevels = List.of(0, 0);
+ }
+ }
+
+ private void refreshShadeColors() {
+ if (batteryColors == null) return;
+
+ initColors();
+
+ mShadeColors = new int[batteryLevels.size() * 2 + 2];
+ mShadeLevels = new float[mShadeColors.length];
+
+ float lastPCT = 0f;
+
+ for (int i = 0; i < batteryLevels.size(); i++) {
+ float rangeLength = batteryLevels.get(i) - lastPCT;
+
+ int pointer = 2 * i;
+ mShadeLevels[pointer] = (lastPCT + rangeLength * 0.3f) / 100;
+ mShadeColors[pointer] = batteryColors[i];
+
+ mShadeLevels[pointer + 1] = (batteryLevels.get(i) - rangeLength * 0.3f) / 100;
+ mShadeColors[pointer + 1] = batteryColors[i];
+ lastPCT = batteryLevels.get(i);
+ }
+
+ @ColorInt int fillColor = getCustomFillColor();
+
+ mShadeLevels[mShadeLevels.length - 2] = (batteryLevels.get(batteryLevels.size() - 1) + (100 - batteryLevels.get(batteryLevels.size() - 1) * 0.3f)) / 100;
+ mShadeColors[mShadeColors.length - 2] = customBlendColor ? fillColor != Color.BLACK ?
+ fillColor : Color.GREEN : mFGColor;
+
+ mShadeLevels[mShadeLevels.length - 1] = 1f;
+ mShadeColors[mShadeColors.length - 1] = customBlendColor ? fillColor != Color.BLACK ?
+ fillColor : Color.GREEN : mFGColor;
+ }
+
+ @Override
+ public void draw(@NonNull Canvas canvas) {
+ if (batteryLevel < 0 || mDiameter == 0) return;
+
+ refreshShadeColors();
+
+ setLevelBasedColors(mBatteryPaint, mFrame.centerX(), mFrame.centerY());
+
+ if (charging && batteryLevel < 100) {
+ if (!mBoltAlphaAnimator.isStarted()) {
+ mBoltAlphaAnimator.start();
+ }
+
+ mBoltPaint.setAlpha(round((int) mBoltAlphaAnimator.getAnimatedValue() * mAlphaPct));
+
+ canvas.drawPath(mBoltPath, mBoltPaint);
+ } else if (mBoltAlphaAnimator.isStarted()) {
+ mBoltAlphaAnimator.end();
+ }
+
+ canvas.drawArc(mFrame, 270f, 360f, false, mFramePaint);
+
+ if (batteryLevel > 0) {
+ canvas.drawArc(mFrame, 270f, 3.6f * batteryLevel, false, mBatteryPaint);
+ }
+
+ if (!charging && batteryLevel < 100 && mShowPercentage) {
+ String pctText = batteryLevel > CRITICAL_LEVEL ? String.valueOf(batteryLevel) : WARNING_STRING;
+
+ float textHeight = -mTextPaint.getFontMetrics().ascent;
+ float pctX = mDiameter * .5f;
+ float pctY = (mDiameter + textHeight) * 0.47f;
+ canvas.drawText(pctText, pctX, pctY, mTextPaint);
+ }
+ }
+
+ private void setLevelBasedColors(Paint paint, float centerX, float centerY) {
+ paint.setShader(null);
+
+ if (powerSaveEnabled) {
+ paint.setColor(mPowerSaveColor);
+ return;
+ } else if (charging) {
+ if (isFastCharging) {
+ paint.setColor(mFastChargingColor);
+ } else {
+ paint.setColor(mChargingColor);
+ }
+ return;
+ }
+
+ if (mShadeColors == null) {
+ for (int i = 0; i < batteryLevels.size(); i++) {
+ if (batteryLevel <= batteryLevels.get(i)) {
+ if (i > 0) {
+ float range = batteryLevels.get(i) - batteryLevels.get(i - 1);
+ float currentPos = batteryLevel - batteryLevels.get(i - 1);
+
+ float ratio = currentPos / range;
+
+ paint.setColor(ColorUtils.blendARGB(batteryColors[i - 1], batteryColors[i], ratio));
+ } else {
+ paint.setColor(batteryColors[i]);
+ }
+ return;
+ }
+ }
+ paint.setColor(mFGColor);
+ } else {
+ SweepGradient shader = new SweepGradient(centerX, centerY, mShadeColors, mShadeLevels);
+ Matrix shaderMatrix = new Matrix();
+ shaderMatrix.preRotate(270f, centerX, centerY);
+ shader.setLocalMatrix(shaderMatrix);
+ paint.setShader(shader);
+ }
+ }
+
+ @Override
+ public void setAlpha(int alpha) {
+ mAlphaPct = alpha / 255f;
+
+ mFramePaint.setAlpha(round(70 * alpha / 255f));
+
+ mTextPaint.setAlpha(alpha);
+ mBatteryPaint.setAlpha(alpha);
+ }
+
+ @SuppressLint({"DiscouragedApi", "RestrictedApi"})
+ private void updateSize() {
+ Resources res = mContext.getResources();
+
+ mDiameter = getBounds().bottom - getBounds().top;
+
+ mWarningTextPaint.setTextSize(mDiameter * 0.75f);
+
+ float strokeWidth = mDiameter / 6.5f;
+ mFramePaint.setStrokeWidth(strokeWidth);
+ mBatteryPaint.setStrokeWidth(strokeWidth);
+
+ mTextPaint.setTextSize(mDiameter * 0.52f);
+
+ mFrame.set(strokeWidth / 2.0f,
+ strokeWidth / 2.0f,
+ mDiameter - strokeWidth / 2.0f,
+ mDiameter - strokeWidth / 2.0f);
+
+ @SuppressLint("DiscouragedApi")
+ Path unscaledBoltPath = new Path();
+ unscaledBoltPath.set(
+ PathParser.createPathFromPathData(
+ res.getString(
+ res.getIdentifier(
+ "android:string/config_batterymeterBoltPath",
+ "string",
+ "android"))));
+
+ //Bolt icon
+ Matrix scaleMatrix = new Matrix();
+ RectF pathBounds = new RectF();
+
+ unscaledBoltPath.computeBounds(pathBounds, true);
+
+ float scaleF = (getBounds().height() - strokeWidth * 2) * .8f / pathBounds.height(); //scale comparing to 80% of icon's inner space
+
+ scaleMatrix.setScale(scaleF, scaleF);
+
+ mBoltPath = new Path();
+
+ unscaledBoltPath.transform(scaleMatrix, mBoltPath);
+
+ mBoltPath.computeBounds(pathBounds, true);
+
+ //moving it to center
+ mBoltPath.offset(getBounds().centerX() - pathBounds.centerX(),
+ getBounds().centerY() - pathBounds.centerY());
+ }
+
+ @Override
+ public void setColorFilter(@Nullable ColorFilter colorFilter) {
+ mFramePaint.setColorFilter(colorFilter);
+ mBatteryPaint.setColorFilter(colorFilter);
+ mWarningTextPaint.setColorFilter(colorFilter);
+ mBoltPaint.setColorFilter(colorFilter);
+ }
+
+ @Override
+ public int getOpacity() {
+ return PixelFormat.UNKNOWN;
+ }
+
+ @Override
+ public int getIntrinsicHeight() {
+ return CIRCLE_DIAMETER;
+ }
+
+ @Override
+ public int getIntrinsicWidth() {
+ return CIRCLE_DIAMETER;
+ }
+
+ private final Runnable invalidateRunnable = this::invalidateSelf;
+
+ private void postInvalidate() {
+ unscheduleSelf(invalidateRunnable);
+ scheduleSelf(invalidateRunnable, 0);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBattery.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBattery.kt
new file mode 100644
index 000000000..72d7a39e5
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBattery.kt
@@ -0,0 +1,488 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBattery(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ var fastCharging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ this.fastCharging = isFast
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), 0)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.left
+ else fillRect.left + (fillRect.width() * (1 - fillFraction))
+
+ levelRect.left = floor(fillTop.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ 0f,
+ bounds.left - bounds.width() * fillFraction,
+ bounds.right.toFloat(),
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.width() * 0.37f
+ val textHeight = -textPaint.fontMetrics.ascent
+ val pctY = (bounds.height() + textHeight) * 0.47f
+ val pctX = bounds.width() * 0.5f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right + (fillRect.height() * (1 + fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterCustomL)
+ else context.getString(R.string.config_landscapeBatteryPerimeterCustomL)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorCustomL)
+ else context.getString(R.string.config_landscapeBatteryErrorCustomL)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskCustomL)
+ else context.getString(R.string.config_landscapeBatteryFillMaskCustomL)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltCustomL)
+ else context.getString(R.string.config_landscapeBatteryBoltCustomL)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusCustomL)
+ else context.getString(R.string.config_landscapeBatteryPlusCustomL)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBattery::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryA.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryA.kt
new file mode 100644
index 000000000..628c96e48
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryA.kt
@@ -0,0 +1,663 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.content.res.TypedArray
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryA(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ var fastCharging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ this.fastCharging = isFast
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ fun getColorAttrDefaultColor(attr: Int, defValue: Int): Int {
+ val obtainStyledAttributes: TypedArray = context.obtainStyledAttributes(intArrayOf(attr))
+ val color: Int = obtainStyledAttributes.getColor(0, defValue)
+ obtainStyledAttributes.recycle()
+ return color
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 0.61f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 3.8f,
+ 3.8f,
+ 3.8f,
+ 3.8f,
+ 3.8f,
+ 3.8f,
+ 3.8f,
+ 3.8f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPaint else customFillPaint
+ )
+ }
+ }
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+ }
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black && xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ ) else if (powerSaveColor == black && !xposed)
+ getColorAttrDefaultColor(android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ var state = false
+ if (customChargingIcon && charging) {
+ state = true
+ } else if (customChargingIcon && !charging) {
+ state = true
+ } else if (!customChargingIcon && charging) {
+ state = false
+ } else if (!customChargingIcon && !charging) {
+ state = true
+ }
+
+ if (showPercent && state) {
+ textPaint.textSize = bounds.width() * 0.25f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.56f
+ val pctY = bounds.height() * 0.66f
+
+ if (isRotation) {
+ c.rotate(180f, pctX + 0.8f, pctY * 0.76f)
+ }
+ if (customBlendColor) {
+ if (powerSaveEnabled && powerSaveFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else if (!powerSaveEnabled && customFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathA)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathA)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathA)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathA)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskA)
+ else context.getString(R.string.config_landscapeBatteryFillMaskA)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathA)
+ else context.getString(R.string.config_landscapeBatteryBoltPathA)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathA)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathA)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryA::class.java.simpleName
+ private const val WIDTH = 18f
+ private const val HEIGHT = 10f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 18x10 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 1.5f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 3f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryB.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryB.kt
new file mode 100644
index 000000000..deb4135b4
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryB.kt
@@ -0,0 +1,649 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryB(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 4.5f,
+ 4.5f,
+ 4.5f,
+ 4.5f,
+ 4.5f,
+ 4.5f,
+ 4.5f,
+ 4.5f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPaint else customFillPaint
+ )
+ }
+ }
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+ }
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ var state = false
+ if (customChargingIcon && charging) {
+ state = true
+ } else if (customChargingIcon && !charging) {
+ state = true
+ } else if (!customChargingIcon && charging) {
+ state = false
+ } else if (!customChargingIcon && !charging) {
+ state = true
+ }
+
+ if (showPercent && state) {
+ textPaint.textSize = bounds.width() * 0.25f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.64f
+ val pctY = bounds.height() * 0.70f
+
+ if (isRotation) {
+ c.rotate(180f, pctX + 0.5f, pctY * 0.79f)
+ }
+ if (customBlendColor) {
+ if (powerSaveEnabled && powerSaveFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else if (!powerSaveEnabled && customFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathB)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathB)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathB)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathB)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskB)
+ else context.getString(R.string.config_landscapeBatteryFillMaskB)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathB)
+ else context.getString(R.string.config_landscapeBatteryBoltPathB)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathB)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathB)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryB::class.java.simpleName
+ private const val WIDTH = 20f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 20x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryC.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryC.kt
new file mode 100644
index 000000000..baea4d486
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryC.kt
@@ -0,0 +1,665 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryC(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ @SuppressLint("DiscouragedApi")
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val fillPercentPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(
+ context,
+ colors.getResourceId(i, 0),
+ Color.WHITE
+ )
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ // Deal with unifiedPath clipping before it draws
+ if (!showPercent && !customChargingIcon) {
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (showPercent) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPercentPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPercentPaint else customFillPaint
+ )
+ }
+ }
+ } else {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPercentPaint else customFillPaint
+ )
+ }
+ }
+ }
+ } else {
+ if (showPercent) {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPercentPaint)
+ fillPaint.color = levelColor
+ }
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+ }
+ }
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (charging) {
+ if (!showPercent && !isRotation && !customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ if (showPercent) {
+ textPaint.textSize = bounds.width() * 0.26f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.6f
+ val pctY = bounds.height() * 0.66f
+
+ textPaint.color = fillColor
+ if (isRotation) {
+ c.rotate(180f, pctX + 0.7f, pctY * 0.76f)
+ }
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ fillPercentPaint.color = fillColor
+ fillPercentPaint.alpha = 75
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathC)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathC)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathC)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathC)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskC)
+ else context.getString(R.string.config_landscapeBatteryFillMaskC)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathC)
+ else context.getString(R.string.config_landscapeBatteryBoltPathC)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathC)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathC)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryC::class.java.simpleName
+ private const val WIDTH = 20f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 20x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryColorOS.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryColorOS.kt
new file mode 100644
index 000000000..aea95ccfb
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryColorOS.kt
@@ -0,0 +1,438 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryColorOS(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var boltColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 1f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.left
+ else fillRect.left + (fillRect.width() * (1 - fillFraction))
+
+ levelRect.left = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ levelPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ // Dual tone means we draw the shape again, clipped to the charge level
+ fillPaint.color = boltColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ c.drawPath(levelPath, fillPaint)
+
+ if (charging) {
+ val xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
+ fillColorStrokePaint.xfermode = xfermode
+
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+
+ fillPaint.color = boltColor
+ c.drawPath(scaledBolt, fillPaint)
+ fillPaint.color = levelColor
+ }
+ c.restore()
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging -> 0xFF20D013.toInt()
+ powerSaveEnabled -> 0xFFFFBE26.toInt()
+ level > 20 -> fillColor
+ level >= 0 -> 0xFFF6400F.toInt()
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = fgColor
+ boltColor = singleToneColor
+
+ fillPaint.color = singleToneColor
+ fillColorStrokePaint.color = singleToneColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterLColorOS)
+ else context.getString(R.string.config_landscapeBatteryPerimeterLColorOS)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorLColorOS)
+ else context.getString(R.string.config_landscapeBatteryErrorLColorOS)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskLColorOS)
+ else context.getString(R.string.config_landscapeBatteryFillMaskLColorOS)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltLColorOS)
+ else context.getString(R.string.config_landscapeBatteryBoltLColorOS)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusLColorOS)
+ else context.getString(R.string.config_landscapeBatteryPlusLColorOS)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = true
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryColorOS::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryD.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryD.kt
new file mode 100644
index 000000000..bc193083c
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryD.kt
@@ -0,0 +1,670 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryD(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+ private val fillOutlinePath = Path()
+ private val scaledfillOutline = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+ val fillBottom = fillRect.bottom + 1f
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelRect.bottom = floor(fillBottom.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, fillPaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ } else {
+ c.clipOutPath(scaledfillOutline)
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPaint else customFillPaint
+ )
+ }
+ } else {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, fillPaint)
+ } else {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ var state = false
+ if (customChargingIcon && charging) {
+ state = true
+ } else if (customChargingIcon && !charging) {
+ state = true
+ } else if (!customChargingIcon && charging) {
+ state = false
+ } else if (!customChargingIcon && !charging) {
+ state = true
+ }
+
+ if (showPercent && state) {
+ textPaint.textSize = bounds.width() * 0.20f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.42f
+ val pctY = bounds.height() * 0.54f
+
+ if (customBlendColor) {
+ if (powerSaveEnabled && powerSaveFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else if (!powerSaveEnabled && customFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ fillOutlinePath.transform(scaleMatrix, scaledfillOutline)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathD)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathD)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathD)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathD)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskD)
+ else context.getString(R.string.config_landscapeBatteryFillMaskD)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val fillOutlinePathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillOutlineD)
+ else context.getString(R.string.config_landscapeBatteryFillOutlineD)
+ fillOutlinePath.set(PathParser.createPathFromPathData(fillOutlinePathString))
+ fillOutlinePath.computeBounds(RectF(), true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathD)
+ else context.getString(R.string.config_landscapeBatteryBoltPathD)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathD)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathD)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryD::class.java.simpleName
+ private const val WIDTH = 20f
+ private const val HEIGHT = 14f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 20x14 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 5f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryE.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryE.kt
new file mode 100644
index 000000000..5e522005e
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryE.kt
@@ -0,0 +1,668 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryE(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+ private val fillOutlinePath = Path()
+ private val scaledfillOutline = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillLeft =
+ if (batteryLevel == 100)
+ fillRect.left
+ else
+ fillRect.left + (fillRect.width() * (1 - fillFraction))
+
+ levelRect.left = floor(fillLeft.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == Color.BLACK)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == Color.BLACK) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ 0f,
+ bounds.left - bounds.width() * fillFraction,
+ bounds.right.toFloat(),
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, fillPaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ } else {
+ c.clipOutPath(scaledfillOutline)
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.left, 0f, 0f, levelRect.bottom,
+ customFillGradColor, customFillColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == Color.BLACK) fillPaint else customFillPaint
+ )
+ }
+ } else {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, fillPaint)
+ } else {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ var state = false
+ if (customChargingIcon && charging) {
+ state = true
+ } else if (customChargingIcon && !charging) {
+ state = true
+ } else if (!customChargingIcon && charging) {
+ state = false
+ } else if (!customChargingIcon && !charging) {
+ state = true
+ }
+
+ if (showPercent && state) {
+ textPaint.textSize = bounds.width() * 0.20f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.84f
+ val pctY = bounds.height() * 0.61f
+
+ if (customBlendColor) {
+ if (powerSaveEnabled && powerSaveFillColor == Color.BLACK) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left + (fillRect.width() * (1 - fillFraction)),
+ fillRect.top,
+ fillRect.right,
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else if (!powerSaveEnabled && customFillColor == Color.BLACK) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left + (fillRect.width() * (1 - fillFraction)),
+ fillRect.top,
+ fillRect.right,
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left + (fillRect.width() * (1 - fillFraction)),
+ fillRect.top,
+ fillRect.right,
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ fillOutlinePath.transform(scaleMatrix, scaledfillOutline)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathE)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathE)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathE)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathE)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskE)
+ else context.getString(R.string.config_landscapeBatteryFillMaskE)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val fillOutlinePathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillOutlineE)
+ else context.getString(R.string.config_landscapeBatteryFillOutlineE)
+ fillOutlinePath.set(PathParser.createPathFromPathData(fillOutlinePathString))
+ fillOutlinePath.computeBounds(RectF(), true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathE)
+ else context.getString(R.string.config_landscapeBatteryBoltPathE)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathE)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathE)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryE::class.java.simpleName
+ private const val WIDTH = 20f
+ private const val HEIGHT = 13f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 20x13 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 5f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryF.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryF.kt
new file mode 100644
index 000000000..e7ad3e0f5
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryF.kt
@@ -0,0 +1,595 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryF(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 0.67f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 0.0f,
+ 3.5f,
+ 3.5f,
+ 3.5f,
+ 3.5f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == Color.BLACK) fillPaint else customFillPaint
+ )
+ }
+ }
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+ }
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == Color.BLACK)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == Color.BLACK) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathF)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathF)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathF)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathF)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskF)
+ else context.getString(R.string.config_landscapeBatteryFillMaskF)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathF)
+ else context.getString(R.string.config_landscapeBatteryBoltPathF)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathF)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathF)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryF::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 24x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 1.5f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 3f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryG.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryG.kt
new file mode 100644
index 000000000..8af4a089d
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryG.kt
@@ -0,0 +1,633 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryG(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+ private val fillOutlinePath = Path()
+ private val scaledfillOutline = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val fillPercentPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+ val fillBottom = fillRect.bottom + 1f
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelRect.bottom = floor(fillBottom.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, fillPaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ } else {
+ c.clipOutPath(scaledfillOutline)
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPercentPaint else customFillPaint
+ )
+ }
+ } else {
+ if (charging) {
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPercentPaint)
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, fillPercentPaint)
+ } else {
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPercentPaint)
+ }
+ }
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ var state = false
+ if (customChargingIcon && charging) {
+ state = true
+ } else if (customChargingIcon && !charging) {
+ state = true
+ } else if (!customChargingIcon && charging) {
+ state = false
+ } else if (!customChargingIcon && !charging) {
+ state = true
+ }
+
+ if (showPercent && state) {
+ textPaint.textSize = bounds.width() * 0.26f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.54f
+ val pctY = bounds.height() * 0.66f
+
+ textPaint.color = fillColor
+ if (isRotation) {
+ c.rotate(180f, pctX, pctY * 0.76f)
+ }
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ fillPercentPaint.color = fillColor
+ fillPercentPaint.alpha = 75
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ fillOutlinePath.transform(scaleMatrix, scaledfillOutline)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathG)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathG)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathG)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathG)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskG)
+ else context.getString(R.string.config_landscapeBatteryFillMaskG)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val fillOutlinePathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillOutlineG)
+ else context.getString(R.string.config_landscapeBatteryFillOutlineG)
+ fillOutlinePath.set(PathParser.createPathFromPathData(fillOutlinePathString))
+ fillOutlinePath.computeBounds(RectF(), true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathG)
+ else context.getString(R.string.config_landscapeBatteryBoltPathG)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathG)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathG)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryG::class.java.simpleName
+ private const val WIDTH = 20f
+ private const val HEIGHT = 13f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 20x13 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 5f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryH.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryH.kt
new file mode 100644
index 000000000..0aeb396a0
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryH.kt
@@ -0,0 +1,663 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryH(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 0.59f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f,
+ 3.0f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPaint else customFillPaint
+ )
+ }
+ }
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+ }
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ var state = false
+ if (customChargingIcon && charging) {
+ state = true
+ } else if (customChargingIcon && !charging) {
+ state = true
+ } else if (!customChargingIcon && charging) {
+ state = false
+ } else if (!customChargingIcon && !charging) {
+ state = true
+ }
+
+ if (showPercent && state) {
+ textPaint.textSize = bounds.width() * 0.26f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.61f
+ val pctY = bounds.height() * 0.69f
+
+ if (isRotation) {
+ c.rotate(180f, pctX + 0.43f, pctY * 0.73f)
+ }
+ if (customBlendColor) {
+ if (powerSaveEnabled && powerSaveFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else if (!powerSaveEnabled && customFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathH)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathH)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathH)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathH)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskH)
+ else context.getString(R.string.config_landscapeBatteryFillMaskH)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathH)
+ else context.getString(R.string.config_landscapeBatteryBoltPathH)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathH)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathH)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryH::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 24x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 5f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryI.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryI.kt
new file mode 100644
index 000000000..3087cf746
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryI.kt
@@ -0,0 +1,1088 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryI(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // custompath
+ private val fillOutlinePath = Path()
+ private val scaledfillOutline = Path()
+ private val fillMask1 = Path()
+ private val scaledFill1 = Path()
+ private val fillMask2 = Path()
+ private val scaledFill2 = Path()
+ private val fillMask3 = Path()
+ private val scaledFill3 = Path()
+ private val fillMask4 = Path()
+ private val scaledFill4 = Path()
+ private val fillMask5 = Path()
+ private val scaledFill5 = Path()
+ private val fillMask6 = Path()
+ private val scaledFill6 = Path()
+ private val fillMask7 = Path()
+ private val scaledFill7 = Path()
+ private val fillMask8 = Path()
+ private val scaledFill8 = Path()
+ private val fillMask9 = Path()
+ private val scaledFill9 = Path()
+ private val fillMask10 = Path()
+ private val scaledFill10 = Path()
+ private val fillNgguyu = Path()
+ private val scaledNgguyu = Path()
+ private val fillMingkem = Path()
+ private val scaledMingkem = Path()
+ private val fillMrengut = Path()
+ private val scaledMrengut = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor1: Int = 0xffff4931.toInt()
+ private val customFillPaint1 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor1
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor2: Int = 0xffff4931.toInt()
+ private val customFillPaint2 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor2
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor3: Int = 0xffff9e19.toInt()
+ private val customFillPaint3 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor3
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor4: Int = 0xffff9e19.toInt()
+ private val customFillPaint4 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor4
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor5: Int = 0xfffff32f.toInt()
+ private val customFillPaint5 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor5
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor6: Int = 0xfffff32f.toInt()
+ private val customFillPaint6 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor6
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor7: Int = 0xff9aff00.toInt()
+ private val customFillPaint7 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor7
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor8: Int = 0xff9aff00.toInt()
+ private val customFillPaint8 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor8
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor9: Int = 0xff2ed200.toInt()
+ private val customFillPaint9 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor9
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var fillPaintColor10: Int = 0xff2ed200.toInt()
+ private val customFillPaint10 = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = fillPaintColor10
+ p.alpha = 110
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val defaultFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 4.2f,
+ 4.2f,
+ 4.2f,
+ 4.2f,
+ 4.2f,
+ 4.2f,
+ 4.2f,
+ 4.2f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ powerSavePaint.color =
+ if (customBlendColor && powerSaveColor != black) powerSaveColor else
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+
+ // Deal with unifiedPath clipping before it draws
+ if (!showPercent) {
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customFillRainbow) {
+ if (charging) {
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ c.clipOutPath(scaledfillOutline)
+ if (batteryLevel in 91..100) {
+ c.drawPath(scaledFill10, customFillPaint10)
+ c.drawPath(scaledFill9, customFillPaint9)
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 81..90) {
+ c.drawPath(scaledFill9, customFillPaint9)
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 71..80) {
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 61..70) {
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 51..60) {
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 41..50) {
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 31..40) {
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 21..30) {
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 11..20) {
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 0..10) {
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ c.drawPath(scaledBolt, fillPaint)
+ c.clipPath(scaledFill)
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.clipOutPath(scaledfillOutline)
+ if (batteryLevel in 91..100) {
+ c.drawPath(scaledFill10, customFillPaint10)
+ c.drawPath(scaledFill9, customFillPaint9)
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 81..90) {
+ c.drawPath(scaledFill9, customFillPaint9)
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 71..80) {
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 61..70) {
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 51..60) {
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 41..50) {
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 31..40) {
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 21..30) {
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 11..20) {
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 0..10) {
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ c.clipPath(scaledFill)
+ } else {
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ c.clipOutPath(scaledfillOutline)
+ if (batteryLevel in 91..100) {
+ c.drawPath(scaledFill10, customFillPaint10)
+ c.drawPath(scaledFill9, customFillPaint9)
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 81..90) {
+ c.drawPath(scaledFill9, customFillPaint9)
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 71..80) {
+ c.drawPath(scaledFill8, customFillPaint8)
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 61..70) {
+ c.drawPath(scaledFill7, customFillPaint7)
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 51..60) {
+ c.drawPath(scaledFill6, customFillPaint6)
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 41..50) {
+ c.drawPath(scaledFill5, customFillPaint5)
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 31..40) {
+ c.drawPath(scaledFill4, customFillPaint4)
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 21..30) {
+ c.drawPath(scaledFill3, customFillPaint3)
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 11..20) {
+ c.drawPath(scaledFill2, customFillPaint2)
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ if (batteryLevel in 0..10) {
+ c.drawPath(scaledFill1, customFillPaint1)
+ }
+ c.clipPath(scaledFill)
+ }
+ } else {
+ // else rainbow
+ if (charging) {
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ c.clipOutPath(scaledfillOutline)
+ chargingPaint.color =
+ if (fastCharging) fastChargingColor
+ else chargingColor
+ c.drawPath(
+ levelPath,
+ if (customBlendColor && chargingColor != black) chargingPaint else defaultFillPaint
+ )
+ c.drawPath(scaledBolt, fillPaint)
+ c.clipPath(scaledFill)
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.clipOutPath(scaledfillOutline)
+ powerSaveFillPaint.color = powerSaveFillColor
+ c.drawPath(
+ levelPath,
+ if (customBlendColor && powerSaveFillColor != black) powerSaveFillPaint else defaultFillPaint
+ )
+ c.clipPath(scaledFill)
+ } else {
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ c.clipOutPath(scaledfillOutline)
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customBlendColor && customFillColor != black) customFillPaint else defaultFillPaint
+ )
+ c.clipPath(scaledFill)
+ }
+ }
+ if (!charging && !showPercent) {
+ if (batteryLevel in 71..100) {
+ c.drawPath(scaledNgguyu, fillPaint)
+ }
+ if (batteryLevel in 41..70) {
+ c.drawPath(scaledMingkem, fillPaint)
+ }
+ if (batteryLevel in 0..40) {
+ c.drawPath(scaledMrengut, fillPaint)
+ }
+ }
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging && !customFillRainbow) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ } else {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ if (showPercent && !charging) {
+ textPaint.textSize = bounds.width() * 0.24f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.56f
+ val pctY = bounds.height() * 0.65f
+
+ textPaint.color = fillColor
+ if (isRotation) {
+ c.rotate(180f, pctX, pctY * 0.78f)
+ }
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ defaultFillPaint.color = fillColor
+ defaultFillPaint.alpha = 85
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ fillOutlinePath.transform(scaleMatrix, scaledfillOutline)
+ fillMask1.transform(scaleMatrix, scaledFill1)
+ fillMask2.transform(scaleMatrix, scaledFill2)
+ fillMask3.transform(scaleMatrix, scaledFill3)
+ fillMask4.transform(scaleMatrix, scaledFill4)
+ fillMask5.transform(scaleMatrix, scaledFill5)
+ fillMask6.transform(scaleMatrix, scaledFill6)
+ fillMask7.transform(scaleMatrix, scaledFill7)
+ fillMask8.transform(scaleMatrix, scaledFill8)
+ fillMask9.transform(scaleMatrix, scaledFill9)
+ fillMask10.transform(scaleMatrix, scaledFill10)
+ fillNgguyu.transform(scaleMatrix, scaledNgguyu)
+ fillMingkem.transform(scaleMatrix, scaledMingkem)
+ fillMrengut.transform(scaleMatrix, scaledMrengut)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathI)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathI)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathI)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathI)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val fillOutlinePathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillOutlinePathI)
+ else context.getString(R.string.config_landscapeBatteryFillOutlinePathI)
+ fillOutlinePath.set(PathParser.createPathFromPathData(fillOutlinePathString))
+ fillOutlinePath.computeBounds(RectF(), true)
+
+ val fillMask1String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI1)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI1)
+ fillMask1.set(PathParser.createPathFromPathData(fillMask1String))
+ fillMask1.computeBounds(RectF(), true)
+
+ val fillMask2String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI2)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI2)
+ fillMask2.set(PathParser.createPathFromPathData(fillMask2String))
+ fillMask2.computeBounds(RectF(), true)
+
+ val fillMask3String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI3)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI3)
+ fillMask3.set(PathParser.createPathFromPathData(fillMask3String))
+ fillMask3.computeBounds(RectF(), true)
+
+ val fillMask4String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI4)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI4)
+ fillMask4.set(PathParser.createPathFromPathData(fillMask4String))
+ fillMask4.computeBounds(RectF(), true)
+
+ val fillMask5String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI5)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI5)
+ fillMask5.set(PathParser.createPathFromPathData(fillMask5String))
+ fillMask5.computeBounds(RectF(), true)
+
+ val fillMask6String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI6)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI6)
+ fillMask6.set(PathParser.createPathFromPathData(fillMask6String))
+ fillMask6.computeBounds(RectF(), true)
+
+ val fillMask7String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI7)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI7)
+ fillMask7.set(PathParser.createPathFromPathData(fillMask7String))
+ fillMask7.computeBounds(RectF(), true)
+
+ val fillMask8String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI8)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI8)
+ fillMask8.set(PathParser.createPathFromPathData(fillMask8String))
+ fillMask8.computeBounds(RectF(), true)
+
+ val fillMask9String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI9)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI9)
+ fillMask9.set(PathParser.createPathFromPathData(fillMask9String))
+ fillMask9.computeBounds(RectF(), true)
+
+ val fillMask10String =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskI10)
+ else context.getString(R.string.config_landscapeBatteryFillMaskI10)
+ fillMask10.set(PathParser.createPathFromPathData(fillMask10String))
+ fillMask10.computeBounds(RectF(), true)
+
+ val fillNgguyuString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillNgguyuI)
+ else context.getString(R.string.config_landscapeBatteryFillNgguyuI)
+ fillNgguyu.set(PathParser.createPathFromPathData(fillNgguyuString))
+ fillNgguyu.computeBounds(RectF(), true)
+
+ val fillMingkemString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMingkemI)
+ else context.getString(R.string.config_landscapeBatteryFillMingkemI)
+ fillMingkem.set(PathParser.createPathFromPathData(fillMingkemString))
+ fillMingkem.computeBounds(RectF(), true)
+
+ val fillMrengutString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMrengutI)
+ else context.getString(R.string.config_landscapeBatteryFillMrengutI)
+ fillMrengut.set(PathParser.createPathFromPathData(fillMrengutString))
+ fillMrengut.computeBounds(RectF(), true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathI)
+ else context.getString(R.string.config_landscapeBatteryBoltPathI)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathI)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathI)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryI::class.java.simpleName
+ private const val WIDTH = 23f
+ private const val HEIGHT = 13f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 22x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryJ.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryJ.kt
new file mode 100644
index 000000000..dbc9629c8
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryJ.kt
@@ -0,0 +1,626 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryJ(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+ private val fillOutlinePath = Path()
+ private val scaledfillOutline = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private var coloringFill1: Int = 0xffff4931.toInt()
+ private var coloringFill2: Int = 0xffff9e19.toInt()
+ private var coloringFill3: Int = 0xffe7de51.toInt()
+ private var coloringFill4: Int = 0xff2ed200.toInt()
+
+ private val coloringFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+ val fillBottom = fillRect.bottom + 1f
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelRect.bottom = floor(fillBottom.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ if (customBlendColor && !customFillRainbow) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (batteryLevel >= 83) {
+ coloringFillPaint.color = coloringFill4
+ } else if (batteryLevel >= 55) {
+ coloringFillPaint.color = coloringFill3
+ } else if (batteryLevel >= 28) {
+ coloringFillPaint.color = coloringFill2
+ } else if (batteryLevel >= 0) {
+ coloringFillPaint.color = coloringFill1
+ }
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor && !customFillRainbow) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, fillPaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ } else {
+ c.clipOutPath(scaledfillOutline)
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPaint else customFillPaint
+ )
+ }
+ } else {
+ if (customFillRainbow) {
+ if (charging) {
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, coloringFillPaint)
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, coloringFillPaint)
+ } else {
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, coloringFillPaint)
+ }
+ } else {
+ if (charging) {
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ } else {
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, fillPaint)
+ }
+ }
+ }
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ fillOutlinePath.transform(scaleMatrix, scaledfillOutline)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathJ)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathJ)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathJ)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathJ)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskJ)
+ else context.getString(R.string.config_landscapeBatteryFillMaskJ)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val fillOutlinePathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillOutlineJ)
+ else context.getString(R.string.config_landscapeBatteryFillOutlineJ)
+ fillOutlinePath.set(PathParser.createPathFromPathData(fillOutlinePathString))
+ fillOutlinePath.computeBounds(RectF(), true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathJ)
+ else context.getString(R.string.config_landscapeBatteryBoltPathJ)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathJ)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathJ)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryJ::class.java.simpleName
+ private const val WIDTH = 20f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 20x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 5f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryK.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryK.kt
new file mode 100644
index 000000000..e50d556d6
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryK.kt
@@ -0,0 +1,666 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryK(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = percentTypeface()
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ private fun percentTypeface(): Typeface {
+ val typefaceBuilder: Typeface.Builder?
+ return try {
+ typefaceBuilder = Typeface.Builder(
+ if (xposed) modRes.assets else context.assets, "Fonts/SanFranciscoText-Semibold.otf")
+ typefaceBuilder.build() ?: Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ } catch (e: Exception) {
+ Typeface.DEFAULT
+ }
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 0.4f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 3.6f,
+ 3.6f,
+ 3.6f,
+ 3.6f,
+ 3.6f,
+ 3.6f,
+ 3.6f,
+ 3.6f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPaint else customFillPaint
+ )
+ }
+ }
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+ }
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ if (!customBlendColor && powerSaveFillColor != black) {
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ }
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ if (showPercent && !charging) {
+ textPaint.textSize = bounds.width() * 0.26f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.58f
+ val pctY = bounds.height() * 0.66f
+
+ if (isRotation) {
+ c.rotate(180f, pctX + 0.4f, pctY * 0.76f)
+ }
+ if (customBlendColor) {
+ if (powerSaveEnabled && powerSaveFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else if (!powerSaveEnabled && customFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathK)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathK)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathK)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathK)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskK)
+ else context.getString(R.string.config_landscapeBatteryFillMaskK)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathK)
+ else context.getString(R.string.config_landscapeBatteryBoltPathK)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathK)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathK)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryK::class.java.simpleName
+ private const val WIDTH = 22f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 22x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 5f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryL.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryL.kt
new file mode 100644
index 000000000..88c1922a0
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryL.kt
@@ -0,0 +1,676 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.PorterDuff
+import android.graphics.PorterDuffXfermode
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryL(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+ private val fillOutlinePath = Path()
+ private val scaledfillOutline = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ var fastCharging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ this.fastCharging = isFast
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private var isQsPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val boltPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = Color.WHITE
+ }
+
+ private val chargingAlphaPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillAlphaPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = percentTypeface()
+ p.textAlign = Paint.Align.CENTER
+ p.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
+ }
+
+ private val textChargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = percentTypeface()
+ p.textAlign = Paint.Align.CENTER
+ p.color = Color.WHITE
+ }
+
+ private val textQsPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = percentTypeface()
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ private fun percentTypeface(): Typeface {
+ val typefaceBuilder: Typeface.Builder?
+ return try {
+ typefaceBuilder = Typeface.Builder(
+ if (xposed) modRes.assets else context.assets, "Fonts/SanFranciscoText-Semibold.otf")
+ typefaceBuilder.build() ?: Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ } catch (e: Exception) {
+ Typeface.DEFAULT
+ }
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+ val chargingParseColor = Color.parseColor("#ff3ab74e")
+ val powerSaveParseColor = Color.parseColor("#fffdd015")
+ chargingAlphaPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else chargingParseColor
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else chargingParseColor
+ powerSavePaint.color =
+ if (customBlendColor && powerSaveColor != black) powerSaveColor else powerSaveParseColor
+ powerSaveFillPaint.color =
+ if (customBlendColor && powerSaveFillColor != black) powerSaveFillColor else powerSaveParseColor
+
+ customFillAlphaPaint.alpha = 85
+ chargingAlphaPaint.alpha = 85
+ powerSavePaint.alpha = 85
+
+ // The perimeter should never change
+ if (charging) {
+ c.drawPath(scaledPerimeter, chargingAlphaPaint)
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledPerimeter, powerSavePaint)
+ c.drawPath(scaledPlus, powerSaveFillPaint)
+ } else {
+ customFillAlphaPaint.color = customFillColor
+ customFillAlphaPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ customFillAlphaPaint.alpha = 85
+ c.drawPath(
+ scaledPerimeter,
+ if (customBlendColor && customFillColor != black) customFillAlphaPaint else scaledPerimeterPaint
+ )
+ }
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, boltPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (charging) {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, chargingPaint)
+ fillPaint.color = levelColor
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ } else {
+ fillPaint.color = fillColor
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(
+ unifiedPath,
+ if (customBlendColor && customFillColor != black) customFillPaint else fillPaint
+ )
+ fillPaint.color = levelColor
+ }
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ }
+ c.restore()
+
+ if (charging || batteryLevel <= CRITICAL_LEVEL) {
+ textChargingPaint.textSize = bounds.width() * if (customChargingIcon) 0.42f else 0.38f
+ val textHeight = +textChargingPaint.fontMetrics.ascent
+ val pctXcharging = if (customChargingIcon) 0.76f else 0.59f
+ val pctX100 = if (customChargingIcon) 0.76f else 0.54f
+ val pctX = (bounds.width() + textHeight) *
+ (if (!charging) 0.72f /* discharging */
+ else if (batteryLevel < 100) pctXcharging /* charging */
+ else pctX100) /* level == 100 */ /* charging */
+ val pctY = bounds.height() * if (customChargingIcon) 0.79f else 0.76f
+
+ if (isRotation) {
+ c.rotate(180f, pctX, pctY * if (customChargingIcon) 0.63f else 0.66f)
+ }
+ c.save()
+ c.drawText(batteryLevel.toString(), pctX, pctY, textChargingPaint)
+ c.restore()
+ } else {
+ textPaint.textSize = bounds.width() * 0.42f
+ textQsPaint.textSize = textPaint.textSize
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.76f
+ val pctY = bounds.height() * 0.79f
+
+ textPaint.color = fillColor
+ textQsPaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.textColorPrimaryInverse
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.textColorPrimaryInverse, Color.WHITE)
+ if (isRotation) {
+ c.rotate(180f, pctX, pctY * 0.63f)
+ }
+ c.drawText(
+ batteryLevel.toString(),
+ pctX,
+ pctY,
+ if (isQsPercent) textQsPaint else textPaint
+ )
+
+ textPaint.color = fillColor.toInt().inv()
+ textQsPaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.textColorPrimaryInverse
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.textColorPrimaryInverse, Color.WHITE)
+ c.save()
+ c.drawText(
+ batteryLevel.toString(),
+ pctX,
+ pctY,
+ if (isQsPercent) textQsPaint else textPaint
+ )
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaint.alpha = 85
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ fillOutlinePath.transform(scaleMatrix, scaledfillOutline)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathL)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathL)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathL)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathL)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskL)
+ else context.getString(R.string.config_landscapeBatteryFillMaskL)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val fillOutlinePathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillOutlineL)
+ else context.getString(R.string.config_landscapeBatteryFillOutlineL)
+ fillOutlinePath.set(PathParser.createPathFromPathData(fillOutlinePathString))
+ fillOutlinePath.computeBounds(RectF(), true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathL)
+ else context.getString(R.string.config_landscapeBatteryBoltPathL)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathL)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathL)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryL::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 24x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 5f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryM.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryM.kt
new file mode 100644
index 000000000..c1ed72bf9
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryM.kt
@@ -0,0 +1,607 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryM(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+ private val fillOutlinePath = Path()
+ private val scaledfillOutline = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingAlphaPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillAlphaPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = percentTypeface()
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ private fun percentTypeface(): Typeface {
+ val typefaceBuilder: Typeface.Builder?
+ return try {
+ typefaceBuilder = Typeface.Builder(
+ if (xposed) modRes.assets else context.assets, "Fonts/SanFranciscoText-Semibold.otf")
+ typefaceBuilder.build() ?: Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ } catch (e: Exception) {
+ Typeface.DEFAULT
+ }
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+ val fillBottom = fillRect.bottom + 1f
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelRect.bottom = floor(fillBottom.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+ val chargingParseColor = Color.parseColor("#ff3ab74e")
+ val powerSaveParseColor = Color.parseColor("#fffdd015")
+ chargingAlphaPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else chargingParseColor
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else chargingParseColor
+ powerSavePaint.color =
+ if (customBlendColor && powerSaveColor != black) powerSaveColor else powerSaveParseColor
+ powerSaveFillPaint.color =
+ if (customBlendColor && powerSaveFillColor != black) powerSaveFillColor else powerSaveParseColor
+
+ customFillAlphaPaint.alpha = 85
+ chargingAlphaPaint.alpha = 85
+ powerSavePaint.alpha = 85
+
+ // The perimeter should never change
+ if (charging) {
+ c.drawPath(scaledPerimeter, chargingAlphaPaint)
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledPerimeter, powerSavePaint)
+ c.drawPath(scaledPlus, powerSaveFillPaint)
+ } else {
+ customFillAlphaPaint.color = customFillColor
+ customFillAlphaPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ customFillAlphaPaint.alpha = 85
+ c.drawPath(
+ scaledPerimeter,
+ if (customBlendColor && customFillColor != black) customFillAlphaPaint else scaledPerimeterPaint
+ )
+ }
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (charging) {
+ fillPaint.color = fillColor
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(unifiedPath, chargingPaint)
+ fillPaint.color = levelColor
+ } else if (powerSaveEnabled) {
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ } else {
+ fillPaint.color = fillColor
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.clipOutPath(scaledfillOutline)
+ c.drawPath(
+ unifiedPath,
+ if (customBlendColor && customFillColor != black) customFillPaint else fillPaint
+ )
+ fillPaint.color = levelColor
+ }
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ }
+ c.restore()
+
+ textPaint.textSize = bounds.width() * 0.26f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctXcharging = if (customChargingIcon) 0.58f else 0.49f
+ val pctX100 = if (customChargingIcon) 0.58f else 0.46f
+ val pctX = (bounds.width() + textHeight) *
+ (if (!charging && !powerSaveEnabled) 0.58f /* discharging */
+ else if (batteryLevel < 100) pctXcharging /* charging / powerSaveEnabled*/
+ else pctX100) /* level == 100 */ /* charging / powerSaveEnabled*/
+ val pctY = bounds.height() * 0.67f
+
+ textPaint.color = fillColor
+ if (isRotation) {
+ c.rotate(180f, pctX, pctY * 0.74f)
+ }
+ c.save()
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaint.alpha = 85
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ fillOutlinePath.transform(scaleMatrix, scaledfillOutline)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathM)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathM)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathM)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathM)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskM)
+ else context.getString(R.string.config_landscapeBatteryFillMaskM)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val fillOutlinePathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillOutlineM)
+ else context.getString(R.string.config_landscapeBatteryFillOutlineM)
+ fillOutlinePath.set(PathParser.createPathFromPathData(fillOutlinePathString))
+ fillOutlinePath.computeBounds(RectF(), true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathM)
+ else context.getString(R.string.config_landscapeBatteryBoltPathM)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathM)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathM)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryM::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 24x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 5f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryMIUIPill.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryMIUIPill.kt
new file mode 100644
index 000000000..94ac6388d
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryMIUIPill.kt
@@ -0,0 +1,446 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryMIUIPill(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var boltColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 1f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.left
+ else fillRect.left + (fillRect.width() * (1 - fillFraction))
+
+ levelRect.left = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 12.0f, 12.0f, 12.0f, 12.0f, 12.0f, 12.0f, 12.0f, 12.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ levelPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ // Dual tone means we draw the shape again, clipped to the charge level
+ fillPaint.color = boltColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ c.save()
+ c.clipRect(
+ bounds.left + (fillRect.width() * (1 - fillFraction + 0.15f)),
+ bounds.top.toFloat(),
+ bounds.left.toFloat() + bounds.width(),
+ bounds.bottom.toFloat()
+ )
+ c.drawPath(scaledFill, fillPaint)
+ c.restore()
+
+ if (charging) {
+ val xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
+ fillColorStrokePaint.xfermode = xfermode
+
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+
+ fillPaint.color = boltColor
+ c.drawPath(scaledBolt, fillPaint)
+ fillPaint.color = levelColor
+ }
+ c.restore()
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging -> 0xFF34C759.toInt()
+ powerSaveEnabled -> 0xFFFFCC0A.toInt()
+ level > 20 -> fillColor
+ level >= 0 -> 0xFFFF3B30.toInt()
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = fgColor
+ boltColor = singleToneColor
+
+ fillPaint.color = singleToneColor
+ fillColorStrokePaint.color = singleToneColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterMiuiPill)
+ else context.getString(R.string.config_landscapeBatteryPerimeterMiuiPill)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorMiuiPill)
+ else context.getString(R.string.config_landscapeBatteryErrorMiuiPill)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskMiuiPill)
+ else context.getString(R.string.config_landscapeBatteryFillMaskMiuiPill)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltMiuiPill)
+ else context.getString(R.string.config_landscapeBatteryBoltMiuiPill)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusMiuiPill)
+ else context.getString(R.string.config_landscapeBatteryPlusMiuiPill)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = true
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryMIUIPill::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryN.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryN.kt
new file mode 100644
index 000000000..53813c6e0
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryN.kt
@@ -0,0 +1,689 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryN(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val perimeterStripPath = Path()
+ private val scaledPerimeterStrip = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ var fastCharging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ this.fastCharging = isFast;
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterStripPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 0.6f
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 5.0f,
+ 5.0f,
+ 5.0f,
+ 5.0f,
+ 5.0f,
+ 5.0f,
+ 5.0f,
+ 5.0f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPaint else customFillPaint
+ )
+ }
+ }
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+ }
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (customBlendColor && chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ if (charging && !customChargingIcon) {
+ scaledPerimeterStripPaint.color = fillColor
+ c.drawPath(scaledBolt, scaledPerimeterStripPaint)
+ scaledPerimeterStripPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawPath(scaledBolt, scaledPerimeterStripPaint)
+ c.restore()
+ }
+ scaledPerimeterStripPaint.color = fillColor
+ c.drawPath(scaledPerimeterStrip, scaledPerimeterStripPaint)
+ scaledPerimeterStripPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawPath(scaledPerimeterStrip, scaledPerimeterStripPaint)
+ c.restore()
+ if (showPercent && !charging) {
+ textPaint.textSize = bounds.width() * 0.19f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.71f
+ val pctY = bounds.height() * 0.76f
+
+ if (isRotation) {
+ c.rotate(180f, pctX + 0.5f, pctY * 0.83f)
+ }
+ if (customBlendColor) {
+ if (powerSaveEnabled && powerSaveFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else if (!powerSaveEnabled && customFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ perimeterStripPath.transform(scaleMatrix, scaledPerimeterStrip)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathN)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathN)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val pathStripString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterStripPathN)
+ else context.getString(R.string.config_landscapeBatteryPerimeterStripPathN)
+ perimeterStripPath.set(PathParser.createPathFromPathData(pathStripString))
+ perimeterStripPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathN)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathN)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskN)
+ else context.getString(R.string.config_landscapeBatteryFillMaskN)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathN)
+ else context.getString(R.string.config_landscapeBatteryBoltPathN)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathN)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathN)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryN::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 24x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 1f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 3f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryO.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryO.kt
new file mode 100644
index 000000000..de93b33ab
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryO.kt
@@ -0,0 +1,652 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.BlendMode
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.ColorFilter
+import android.graphics.LinearGradient
+import android.graphics.Matrix
+import android.graphics.Paint
+import android.graphics.Path
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.RectF
+import android.graphics.Shader
+import android.graphics.Typeface
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryO(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ private val chargingPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val customFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSavePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val powerSaveFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledFillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ private val scaledPerimeterPaintDef = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillRight =
+ if (batteryLevel == 100)
+ fillRect.right + 1
+ else
+ fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillRight.toDouble()).toFloat()
+ levelPath.addRoundRect(
+ levelRect,
+ floatArrayOf(
+ 2.0f,
+ 2.0f,
+ 2.0f,
+ 2.0f,
+ 2.0f,
+ 2.0f,
+ 2.0f,
+ 2.0f
+ ), Path.Direction.CCW
+ )
+
+ scaledFillPaint.alpha = if (scaledFillAlpha) 100 else 0
+ scaledPerimeterPaint.alpha =
+ if (scaledPerimeterAlpha) 100 else scaledPerimeterPaintDef.alpha
+
+ // The perimeter should never change
+ c.drawPath(scaledFill, scaledFillPaint)
+ c.drawPath(scaledPerimeter, scaledPerimeterPaint)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+ val black = Color.BLACK
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging && !customChargingIcon) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ if (customBlendColor) {
+ if (charging) {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ customFillPaint.color = customFillColor
+ customFillPaint.shader =
+ if (customFillColor != black && customFillGradColor != black) LinearGradient(
+ levelRect.right, 0f, 0f, levelRect.bottom,
+ customFillColor, customFillGradColor,
+ Shader.TileMode.CLAMP
+ ) else null
+ c.drawPath(
+ levelPath,
+ if (customFillColor == black) fillPaint else customFillPaint
+ )
+ }
+ }
+ } else {
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ } else {
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ }
+ }
+ }
+
+ if (customBlendColor) {
+ chargingPaint.color =
+ if (fastCharging && fastChargingColor != black) fastChargingColor
+ else if (chargingColor != black) chargingColor else Color.TRANSPARENT
+
+ powerSavePaint.color =
+ if (powerSaveColor == black)
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ context,
+ android.R.attr.colorError
+ )
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ else powerSaveColor
+
+ powerSaveFillPaint.color =
+ if (powerSaveFillColor == black) Color.TRANSPARENT else powerSaveFillColor
+ } else {
+ chargingPaint.color = Color.TRANSPARENT
+ powerSavePaint.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ powerSaveFillPaint.color = Color.TRANSPARENT
+ }
+
+ if (charging) {
+ if (!customChargingIcon) {
+ c.clipOutPath(scaledBolt)
+ c.drawPath(levelPath, chargingPaint)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else {
+ c.drawPath(levelPath, chargingPaint)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, powerSavePaint)
+ c.drawPath(levelPath, powerSaveFillPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, powerSavePaint)
+ }
+ }
+ c.restore()
+
+ if (showPercent && !charging) {
+ textPaint.textSize = bounds.width() * 0.25f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.59f
+ val pctY = bounds.height() * 0.65f
+
+ if (isRotation) {
+ c.rotate(180f, pctX, pctY * 0.77f)
+ }
+ if (customBlendColor) {
+ if (powerSaveEnabled && powerSaveFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else if (!powerSaveEnabled && customFillColor == black) {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ } else {
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ if (isRotation) fillRect.left + (fillRect.width() * (1 - fillFraction)) else fillRect.left,
+ fillRect.top,
+ if (isRotation) fillRect.right else fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ }
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ // invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ scaledFillPaint.color = fillColor
+ scaledPerimeterPaint.color = fillColor
+ scaledPerimeterPaintDef.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterPathO)
+ else context.getString(R.string.config_landscapeBatteryPerimeterPathO)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorPerimeterPathO)
+ else context.getString(R.string.config_landscapeBatteryErrorPerimeterPathO)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskO)
+ else context.getString(R.string.config_landscapeBatteryFillMaskO)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltPathO)
+ else context.getString(R.string.config_landscapeBatteryBoltPathO)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPowersavePathO)
+ else context.getString(R.string.config_landscapeBatteryPowersavePathO)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryO::class.java.simpleName
+ private const val WIDTH = 20f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 15
+
+ // On a 20x12 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 2f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 3f
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatterySmiley.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatterySmiley.kt
new file mode 100644
index 000000000..61a1b5ed7
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatterySmiley.kt
@@ -0,0 +1,507 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatterySmiley(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+ private val scaledSmileyHigh = Path()
+ private val scaledSmileyMid = Path()
+ private val scaledSmileyLow = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ // Smiley sign (used based on level)
+ private val smileyHighPath = Path()
+ private val smileyMidPath = Path()
+ private val smileyLowPath = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+ var fastCharging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ this.fastCharging = isFast
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ // Only used if charging
+ private val fillPaintCharging = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = 0xFF34C759.toInt()
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.right
+ else fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ unifiedPath.op(levelPath, Path.Op.UNION)
+
+ fillPaint.color = levelColor
+
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(scaledPerimeter, fillPaint)
+ if (charging) c.drawPath(levelPath, fillPaintCharging)
+ else c.drawPath(levelPath, dualToneBackgroundFill)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+
+ if (charging || batteryLevel >= 75) c.drawPath(scaledSmileyHigh, fillPaint)
+ else if (batteryLevel > 25) c.drawPath(scaledSmileyMid, fillPaint)
+ else c.drawPath(scaledSmileyLow, fillPaint)
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.width() * 0.38f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.7f
+ val pctY = bounds.height() * 0.8f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+ smileyHighPath.transform(scaleMatrix, scaledSmileyHigh)
+ smileyMidPath.transform(scaleMatrix, scaledSmileyMid)
+ smileyLowPath.transform(scaleMatrix, scaledSmileyLow)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterSmiley)
+ else context.getString(R.string.config_landscapeBatteryPerimeterSmiley)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorSmiley)
+ else context.getString(R.string.config_landscapeBatteryErrorSmiley)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskSmiley)
+ else context.getString(R.string.config_landscapeBatteryFillMaskSmiley)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltSmiley)
+ else context.getString(R.string.config_landscapeBatteryBoltSmiley)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusSmiley)
+ else context.getString(R.string.config_landscapeBatteryPlusSmiley)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ val smileyHighPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltSmileyHigh)
+ else context.getString(R.string.config_landscapeBatteryBoltSmileyHigh)
+ smileyHighPath.set(PathParser.createPathFromPathData(smileyHighPathString))
+
+ val smileyMidPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltSmileyMid)
+ else context.getString(R.string.config_landscapeBatteryBoltSmileyMid)
+ smileyMidPath.set(PathParser.createPathFromPathData(smileyMidPathString))
+
+ val smileyLowPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltSmileyLow)
+ else context.getString(R.string.config_landscapeBatteryBoltSmileyLow)
+ smileyLowPath.set(PathParser.createPathFromPathData(smileyLowPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatterySmiley::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryStyleA.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryStyleA.kt
new file mode 100644
index 000000000..24e8312f3
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryStyleA.kt
@@ -0,0 +1,499 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryStyleA(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.left
+ else fillRect.left + (fillRect.width() * (1 - fillFraction))
+
+ levelRect.left = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left - bounds.width() * fillFraction,
+ 0f,
+ bounds.right.toFloat(),
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.width() * 0.38f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.7f
+ val pctY = bounds.height() * 0.8f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.right,
+ fillRect.top,
+ fillRect.left + (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterLStyleA)
+ else context.getString(R.string.config_landscapeBatteryPerimeterLStyleA)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorLStyleA)
+ else context.getString(R.string.config_landscapeBatteryErrorLStyleA)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskLStyleA)
+ else context.getString(R.string.config_landscapeBatteryFillMaskLStyleA)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltLStyleA)
+ else context.getString(R.string.config_landscapeBatteryBoltLStyleA)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusLStyleA)
+ else context.getString(R.string.config_landscapeBatteryPlusLStyleA)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryStyleA::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryStyleB.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryStyleB.kt
new file mode 100644
index 000000000..79b93f998
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryStyleB.kt
@@ -0,0 +1,499 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class LandscapeBatteryStyleB(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.left
+ else fillRect.left + (fillRect.width() * (1 - fillFraction))
+
+ levelRect.left = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left - bounds.width() * fillFraction,
+ 0f,
+ bounds.right.toFloat(),
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.width() * 0.38f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.7f
+ val pctY = bounds.height() * 0.8f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.right,
+ fillRect.top,
+ fillRect.left + (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterLStyleB)
+ else context.getString(R.string.config_landscapeBatteryPerimeterLStyleB)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorLStyleB)
+ else context.getString(R.string.config_landscapeBatteryErrorLStyleB)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskLStyleB)
+ else context.getString(R.string.config_landscapeBatteryFillMaskLStyleB)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltLStyleB)
+ else context.getString(R.string.config_landscapeBatteryBoltLStyleB)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusLStyleB)
+ else context.getString(R.string.config_landscapeBatteryPlusLStyleB)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryStyleB::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryiOS15.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryiOS15.kt
new file mode 100644
index 000000000..2c9a2a589
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryiOS15.kt
@@ -0,0 +1,439 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+open class LandscapeBatteryiOS15(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var boltColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 1f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.right
+ else fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ unifiedPath.op(levelPath, Path.Op.UNION)
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ levelPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ fillPaint.color = levelColor
+ c.drawPath(levelPath, fillPaint)
+
+ if (charging) {
+ val xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
+ fillColorStrokePaint.xfermode = xfermode
+
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+
+ fillPaint.color = boltColor
+ c.drawPath(scaledBolt, fillPaint)
+ fillPaint.color = levelColor
+ }
+ c.restore()
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging -> 0xFF34C759.toInt()
+ powerSaveEnabled -> 0xFFFFCC0A.toInt()
+ level > 20 -> fillColor
+ level >= 0 -> 0xFFFF3B30.toInt()
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = fgColor
+ boltColor = singleToneColor
+
+ fillPaint.color = singleToneColor
+ fillColorStrokePaint.color = singleToneColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeteriOS15)
+ else context.getString(R.string.config_landscapeBatteryPerimeteriOS15)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErroriOS15)
+ else context.getString(R.string.config_landscapeBatteryErroriOS15)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskiOS15)
+ else context.getString(R.string.config_landscapeBatteryFillMaskiOS15)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltiOS15)
+ else context.getString(R.string.config_landscapeBatteryBoltiOS15)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusiOS15)
+ else context.getString(R.string.config_landscapeBatteryPlusiOS15)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryiOS15::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryiOS16.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryiOS16.kt
new file mode 100644
index 000000000..5f971fb51
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/LandscapeBatteryiOS16.kt
@@ -0,0 +1,491 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+open class LandscapeBatteryiOS16(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+ private var boltColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = true
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = true
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = true
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val boltPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = boltColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.color.holo_red_light, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.createFromAsset(
+ if (xposed) modRes.assets
+ else context.assets,
+ "Fonts/SFUITextCondensed-Bold.otf")
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.right
+ else fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ val mergedPath = Path()
+ mergedPath.reset()
+
+ textPaint.textSize = bounds.width() * 0.42f
+ val textHeight = +textPaint.fontMetrics.ascent
+ var pctX = (bounds.width() + textHeight) * 0.75f
+ val pctY = bounds.height() * 0.8f
+
+ if (charging && batteryLevel < 100) {
+ pctX = (bounds.width() + textHeight) * 0.7f
+ pctX -= (pctX * 0.2f)
+ }
+
+ val textPath = Path()
+ textPath.reset()
+ textPaint.getTextPath(
+ batteryLevel.toString(), 0, batteryLevel.toString().length, pctX, pctY, textPath
+ )
+
+ mergedPath.addPath(textPath)
+ mergedPath.addPath(scaledBolt)
+
+ val xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
+ textPaint.xfermode = xfermode
+
+ if (!shouldChangePercentageColor()) {
+ // Clip out the text path
+ unifiedPath.op(textPath, Path.Op.DIFFERENCE)
+ c.drawPath(textPath, textPaint)
+ }
+
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ bounds.top.toFloat(),
+ bounds.left + bounds.width() * fillFraction,
+ bounds.bottom.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+
+ // Deal with unifiedPath clipping before it draws
+ if (shouldChangePercentageColor()) {
+ // Clip out the bolt shape
+ if (charging && batteryLevel < 100) {
+ c.drawPath(mergedPath, boltPaint)
+ } else {
+ c.drawPath(textPath, boltPaint)
+ }
+ }
+
+ c.restore()
+ }
+
+ /**
+ * Returns true if the battery percentage text should be colored.
+ * Battery percentage color should be fillColor when in charging state or in low battery state,
+ * otherwise it should be transparent.
+ */
+ private fun shouldChangePercentageColor(): Boolean {
+ return charging || (!powerSaveEnabled && batteryLevel <= CRITICAL_LEVEL)
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging -> 0xFF34C759.toInt()
+ powerSaveEnabled -> 0xFFFFCC0A.toInt()
+ level > 20 -> fillColor
+ level >= 0 -> 0xFFFF0000.toInt()
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = fgColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ boltColor = singleToneColor
+ boltPaint.color = boltColor
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeteriOS16)
+ else context.getString(R.string.config_landscapeBatteryPerimeteriOS16)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErroriOS16)
+ else context.getString(R.string.config_landscapeBatteryErroriOS16)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskiOS16)
+ else context.getString(R.string.config_landscapeBatteryFillMaskiOS16)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltiOS16)
+ else context.getString(R.string.config_landscapeBatteryBoltiOS16)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusiOS16)
+ else context.getString(R.string.config_landscapeBatteryPlusiOS16)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = true
+ }
+
+ companion object {
+ private val TAG = LandscapeBatteryiOS16::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryCapsule.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryCapsule.kt
new file mode 100644
index 000000000..2da1d609b
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryCapsule.kt
@@ -0,0 +1,498 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class PortraitBatteryCapsule(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.top
+ else fillRect.top + (fillRect.height() * (1 - fillFraction))
+
+ levelRect.top = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 8.0f, 8.0f, 8.0f, 8.0f, 8.0f, 8.0f, 8.0f, 8.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ 0f,
+ bounds.bottom - bounds.height() * fillFraction,
+ bounds.right.toFloat(),
+ bounds.bottom.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.height() * 0.38f
+ val textHeight = -textPaint.fontMetrics.ascent
+ val pctX = bounds.width() * 0.5f
+ val pctY = (bounds.height() + textHeight) * 0.5f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top + (fillRect.height() * (1 - fillFraction)),
+ fillRect.right,
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPerimeterCapsule)
+ else context.getString(R.string.config_portraitBatteryPerimeterCapsule)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryErrorCapsule)
+ else context.getString(R.string.config_portraitBatteryErrorCapsule)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryFillMaskCapsule)
+ else context.getString(R.string.config_portraitBatteryFillMaskCapsule)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryBoltCapsule)
+ else context.getString(R.string.config_portraitBatteryBoltCapsule)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPlusCapsule)
+ else context.getString(R.string.config_portraitBatteryPlusCapsule)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = PortraitBatteryCapsule::class.java.simpleName
+ private const val WIDTH = 12f
+ private const val HEIGHT = 20f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryLorn.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryLorn.kt
new file mode 100644
index 000000000..b9b539455
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryLorn.kt
@@ -0,0 +1,499 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class PortraitBatteryLorn(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ @SuppressLint("DiscouragedApi")
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.top
+ else fillRect.top + (fillRect.height() * (1 - fillFraction))
+
+ levelRect.top = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ 0f,
+ bounds.bottom - bounds.height() * fillFraction,
+ bounds.right.toFloat(),
+ bounds.bottom.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.height() * 0.38f
+ val textHeight = -textPaint.fontMetrics.ascent
+ val pctX = bounds.width() * 0.5f
+ val pctY = (bounds.height() + textHeight) * 0.5f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top + (fillRect.height() * (1 - fillFraction)),
+ fillRect.right,
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi", "DiscouragedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPerimeterLorn)
+ else context.getString(R.string.config_portraitBatteryPerimeterLorn)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryErrorLorn)
+ else context.getString(R.string.config_portraitBatteryErrorLorn)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryFillMaskLorn)
+ else context.getString(R.string.config_portraitBatteryFillMaskLorn)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryBoltLorn)
+ else context.getString(R.string.config_portraitBatteryBoltLorn)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPlusLorn)
+ else context.getString(R.string.config_portraitBatteryPlusLorn)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = PortraitBatteryLorn::class.java.simpleName
+ private const val WIDTH = 12f
+ private const val HEIGHT = 20f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryMx.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryMx.kt
new file mode 100644
index 000000000..c3c1df557
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryMx.kt
@@ -0,0 +1,493 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class PortraitBatteryMx(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.top
+ else fillRect.top + (fillRect.height() * (1 - fillFraction))
+
+ levelRect.top = floor(fillTop.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ 0f,
+ bounds.bottom - bounds.height() * fillFraction,
+ bounds.right.toFloat(),
+ bounds.bottom.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.height() * 0.38f
+ val textHeight = -textPaint.fontMetrics.ascent
+ val pctX = bounds.width() * 0.5f
+ val pctY = (bounds.height() + textHeight) * 0.5f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top + (fillRect.height() * (1 - fillFraction)),
+ fillRect.right,
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPerimeterMx)
+ else context.getString(R.string.config_portraitBatteryPerimeterMx)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryErrorMx)
+ else context.getString(R.string.config_portraitBatteryErrorMx)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryFillMaskMx)
+ else context.getString(R.string.config_portraitBatteryFillMaskMx)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryBoltMx)
+ else context.getString(R.string.config_portraitBatteryBoltMx)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPlusMx)
+ else context.getString(R.string.config_portraitBatteryPlusMx)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = PortraitBatteryMx::class.java.simpleName
+ private const val WIDTH = 12f
+ private const val HEIGHT = 20f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryOrigami.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryOrigami.kt
new file mode 100644
index 000000000..cfb8deae0
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PortraitBatteryOrigami.kt
@@ -0,0 +1,485 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class PortraitBatteryOrigami(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.top
+ else fillRect.top + (fillRect.height() * (1 - fillFraction))
+
+ levelRect.top = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 9.0f, 9.0f, 9.0f, 9.0f, 9.0f, 9.0f, 9.0f, 9.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ 0f,
+ bounds.bottom - bounds.height() * fillFraction,
+ bounds.right.toFloat(),
+ bounds.bottom.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.drawPath(scaledPerimeter, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.drawPath(scaledBolt, fillPaint)
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.height() * 0.38f
+ val textHeight = -textPaint.fontMetrics.ascent
+ val pctX = bounds.width() * 0.5f
+ val pctY = (bounds.height() + textHeight) * 0.5f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top + (fillRect.height() * (1 - fillFraction)),
+ fillRect.right,
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPerimeterOrigami)
+ else context.getString(R.string.config_portraitBatteryPerimeterOrigami)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryErrorOrigami)
+ else context.getString(R.string.config_portraitBatteryErrorOrigami)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryFillMaskOrigami)
+ else context.getString(R.string.config_portraitBatteryFillMaskOrigami)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryBoltOrigami)
+ else context.getString(R.string.config_portraitBatteryBoltOrigami)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPlusOrigami)
+ else context.getString(R.string.config_portraitBatteryPlusOrigami)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = PortraitBatteryOrigami::class.java.simpleName
+ private const val WIDTH = 20f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PotraitBatteryAiroo.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PotraitBatteryAiroo.kt
new file mode 100644
index 000000000..34bac22ef
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/PotraitBatteryAiroo.kt
@@ -0,0 +1,484 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class PortraitBatteryAiroo(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.top
+ else fillRect.top + (fillRect.height() * (1 - fillFraction))
+
+ levelRect.top = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ 0f,
+ bounds.bottom - bounds.height() * fillFraction,
+ bounds.right.toFloat(),
+ bounds.bottom.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.height() * 0.38f
+ val textHeight = -textPaint.fontMetrics.ascent
+ val pctX = bounds.width() * 0.5f
+ val pctY = (bounds.height() + textHeight) * 0.5f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top + (fillRect.height() * (1 - fillFraction)),
+ fillRect.right,
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPerimeterAiroo)
+ else context.getString(R.string.config_portraitBatteryPerimeterAiroo)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryErrorAiroo)
+ else context.getString(R.string.config_portraitBatteryErrorAiroo)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryFillMaskAiroo)
+ else context.getString(R.string.config_portraitBatteryFillMaskAiroo)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryBoltAiroo)
+ else context.getString(R.string.config_portraitBatteryBoltAiroo)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_portraitBatteryPlusAiroo)
+ else context.getString(R.string.config_portraitBatteryPlusAiroo)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = PortraitBatteryAiroo::class.java.simpleName
+ private const val WIDTH = 12f
+ private const val HEIGHT = 20f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBattery.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBattery.kt
new file mode 100644
index 000000000..31ef27bc8
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBattery.kt
@@ -0,0 +1,494 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class RLandscapeBattery(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.right
+ else fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillTop.toDouble()).toFloat()
+ levelPath.addRect(levelRect, Path.Direction.CCW)
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.width() * 0.38f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.7f
+ val pctY = bounds.height() * 0.8f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterCustomR)
+ else context.getString(R.string.config_landscapeBatteryPerimeterCustomR)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorCustomR)
+ else context.getString(R.string.config_landscapeBatteryErrorCustomR)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskCustomR)
+ else context.getString(R.string.config_landscapeBatteryFillMaskCustomR)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltCustomR)
+ else context.getString(R.string.config_landscapeBatteryBoltCustomR)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusCustomR)
+ else context.getString(R.string.config_landscapeBatteryPlusCustomR)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = RLandscapeBattery::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryColorOS.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryColorOS.kt
new file mode 100644
index 000000000..3a51cdd73
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryColorOS.kt
@@ -0,0 +1,438 @@
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class RLandscapeBatteryColorOS(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var boltColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 1f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.right
+ else fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f, 6.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ levelPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ // Dual tone means we draw the shape again, clipped to the charge level
+ fillPaint.color = boltColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+ c.drawPath(levelPath, fillPaint)
+
+ if (charging) {
+ val xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_OUT)
+ fillColorStrokePaint.xfermode = xfermode
+
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+
+ fillPaint.color = boltColor
+ c.drawPath(scaledBolt, fillPaint)
+ fillPaint.color = levelColor
+ }
+ c.restore()
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging -> 0xFF20D013.toInt()
+ powerSaveEnabled -> 0xFFFFBE26.toInt()
+ level > 20 -> fillColor
+ level >= 0 -> 0xFFF6400F.toInt()
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = fgColor
+ boltColor = singleToneColor
+
+ fillPaint.color = singleToneColor
+ fillColorStrokePaint.color = singleToneColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterRColorOS)
+ else context.getString(R.string.config_landscapeBatteryPerimeterRColorOS)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorRColorOS)
+ else context.getString(R.string.config_landscapeBatteryErrorRColorOS)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskRColorOS)
+ else context.getString(R.string.config_landscapeBatteryFillMaskRColorOS)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltRColorOS)
+ else context.getString(R.string.config_landscapeBatteryBoltRColorOS)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusRColorOS)
+ else context.getString(R.string.config_landscapeBatteryPlusRColorOS)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = true
+ }
+
+ companion object {
+ private val TAG = RLandscapeBatteryColorOS::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryStyleA.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryStyleA.kt
new file mode 100644
index 000000000..591077ed4
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryStyleA.kt
@@ -0,0 +1,499 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class RLandscapeBatteryStyleA(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.right
+ else fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.width() * 0.38f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.7f
+ val pctY = bounds.height() * 0.8f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterRStyleA)
+ else context.getString(R.string.config_landscapeBatteryPerimeterRStyleA)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorRStyleA)
+ else context.getString(R.string.config_landscapeBatteryErrorRStyleA)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskRStyleA)
+ else context.getString(R.string.config_landscapeBatteryFillMaskRStyleA)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryBoltRStyleA)
+ else context.getString(R.string.config_landscapeBatteryBoltRStyleA)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusRStyleA)
+ else context.getString(R.string.config_landscapeBatteryPlusRStyleA)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = RLandscapeBatteryStyleA::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryStyleB.kt b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryStyleB.kt
new file mode 100644
index 000000000..31a196634
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/batterystyles/RLandscapeBatteryStyleB.kt
@@ -0,0 +1,499 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package it.dhd.oxygencustomizer.xposed.batterystyles
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.*
+import android.util.TypedValue
+import androidx.core.graphics.PathParser
+import it.dhd.oxygencustomizer.R
+import it.dhd.oxygencustomizer.xposed.ResourceManager.modRes
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider
+import kotlin.math.floor
+
+@SuppressLint("DiscouragedApi")
+open class RLandscapeBatteryStyleB(private val context: Context, frameColor: Int, private val xposed: Boolean) :
+ BatteryDrawable() {
+
+ // Need to load:
+ // 1. perimeter shape
+ // 2. fill mask (if smaller than perimeter, this would create a fill that
+ // doesn't touch the walls
+ private val perimeterPath = Path()
+ private val scaledPerimeter = Path()
+ private val errorPerimeterPath = Path()
+ private val scaledErrorPerimeter = Path()
+
+ // Fill will cover the whole bounding rect of the fillMask, and be masked by the path
+ private val fillMask = Path()
+ private val scaledFill = Path()
+
+ // Based off of the mask, the fill will interpolate across this space
+ private val fillRect = RectF()
+
+ // Top of this rect changes based on level, 100% == fillRect
+ private val levelRect = RectF()
+ private val levelPath = Path()
+
+ // Updates the transform of the paths when our bounds change
+ private val scaleMatrix = Matrix()
+ private val padding = Rect()
+
+ // The net result of fill + perimeter paths
+ private val unifiedPath = Path()
+
+ // Bolt path (used while charging)
+ private val boltPath = Path()
+ private val scaledBolt = Path()
+
+ // Plus sign (used for power save mode)
+ private val plusPath = Path()
+ private val scaledPlus = Path()
+
+ private var intrinsicHeight: Int
+ private var intrinsicWidth: Int
+
+ // To implement hysteresis, keep track of the need to invert the interior icon of the battery
+ private var invertFillIcon = false
+
+ // Colors can be configured based on battery level (see res/values/arrays.xml)
+ private var colorLevels: IntArray
+
+ private var fillColor: Int = Color.WHITE
+ private var backgroundColor: Int = Color.WHITE
+
+ // updated whenever level changes
+ private var levelColor: Int = Color.WHITE
+
+ // Dual tone implies that battery level is a clipped overlay over top of the whole shape
+ private var dualTone = false
+
+ private var batteryLevel = 0
+
+ private val invalidateRunnable: () -> Unit = {
+ invalidateSelf()
+ }
+
+ open var criticalLevel: Int = 5
+
+ var charging = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setChargingEnabled(charging: Boolean, isFast: Boolean) {
+ this.charging = charging
+ postInvalidate()
+ }
+
+ var powerSaveEnabled = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setPowerSavingEnabled(powerSaveEnabled: Boolean) {
+ this.powerSaveEnabled = powerSaveEnabled
+ postInvalidate()
+ }
+
+ var showPercent = false
+ set(value) {
+ field = value
+ postInvalidate()
+ }
+
+ override fun setShowPercentEnabled(showPercent: Boolean) {
+ this.showPercent = showPercent
+ postInvalidate()
+ }
+
+ private val fillColorStrokePaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.SRC
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillColorStrokeProtection = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.isDither = true
+ p.strokeWidth = 5f
+ p.style = Paint.Style.STROKE
+ p.blendMode = BlendMode.CLEAR
+ p.strokeMiter = 5f
+ p.strokeJoin = Paint.Join.ROUND
+ }
+
+ private val fillPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val errorPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(context, android.R.attr.colorError)
+ else getColorAttrDefaultColor(context, android.R.attr.colorError, Color.RED)
+ p.alpha = 255
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ p.blendMode = BlendMode.SRC
+ }
+
+ // Only used if dualTone is set to true
+ private val dualToneBackgroundFill = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.color = frameColor
+ p.alpha = 85 // ~0.3 alpha by default
+ p.isDither = true
+ p.strokeWidth = 0f
+ p.style = Paint.Style.FILL_AND_STROKE
+ }
+
+ private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).also { p ->
+ p.typeface = Typeface.create("sans-serif-condensed", Typeface.BOLD)
+ p.textAlign = Paint.Align.CENTER
+ }
+
+ init {
+ val density = context.resources.displayMetrics.density
+ intrinsicHeight = (HEIGHT * density).toInt()
+ intrinsicWidth = (WIDTH * density).toInt()
+
+ val res = context.resources
+ val levels = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_levels", "array", context.packageName
+ )
+ )
+ val colors = res.obtainTypedArray(
+ res.getIdentifier(
+ "batterymeter_color_values", "array", context.packageName
+ )
+ )
+ val n = levels.length()
+ colorLevels = IntArray(2 * n)
+ for (i in 0 until n) {
+ colorLevels[2 * i] = levels.getInt(i, 0)
+ if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
+ colorLevels[2 * i + 1] =
+ if (xposed) SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ colors.getResourceId(i, 0), context
+ )
+ else getColorAttrDefaultColor(context, colors.getResourceId(i, 0), Color.WHITE)
+ } else {
+ colorLevels[2 * i + 1] = colors.getColor(i, 0)
+ }
+ }
+ levels.recycle()
+ colors.recycle()
+
+ loadPaths()
+ }
+
+ override fun draw(c: Canvas) {
+ c.saveLayer(null, null)
+ unifiedPath.reset()
+ levelPath.reset()
+ levelRect.set(fillRect)
+ val fillFraction = batteryLevel / 100f
+ val fillTop = if (batteryLevel >= 95) fillRect.right
+ else fillRect.right - (fillRect.width() * (1 - fillFraction))
+
+ levelRect.right = floor(fillTop.toDouble()).toFloat()
+ //levelPath.addRect(levelRect, Path.Direction.CCW)
+ levelPath.addRoundRect(
+ levelRect, floatArrayOf(
+ 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f
+ ), Path.Direction.CCW
+ )
+
+ // The perimeter should never change
+ unifiedPath.addPath(scaledPerimeter)
+ // If drawing dual tone, the level is used only to clip the whole drawable path
+ if (!dualTone) {
+ unifiedPath.op(levelPath, Path.Op.UNION)
+ }
+
+ fillPaint.color = levelColor
+
+ // Deal with unifiedPath clipping before it draws
+ if (charging) {
+ // Clip out the bolt shape
+ unifiedPath.op(scaledBolt, Path.Op.DIFFERENCE)
+ if (!invertFillIcon) {
+ c.drawPath(scaledBolt, fillPaint)
+ }
+ }
+
+ if (dualTone) {
+ // Dual tone means we draw the shape again, clipped to the charge level
+ c.drawPath(unifiedPath, dualToneBackgroundFill)
+ c.save()
+ c.clipRect(
+ bounds.left.toFloat(),
+ 0f,
+ bounds.right + bounds.width() * fillFraction,
+ bounds.left.toFloat()
+ )
+ c.drawPath(unifiedPath, fillPaint)
+ c.restore()
+ } else {
+ // Non dual-tone means we draw the perimeter (with the level fill), and potentially
+ // draw the fill again with a critical color
+ fillPaint.color = fillColor
+ c.drawPath(unifiedPath, fillPaint)
+ fillPaint.color = levelColor
+
+ // Show colorError below this level
+ if (batteryLevel <= CRITICAL_LEVEL && !charging) {
+ c.save()
+ c.clipPath(scaledFill)
+ c.drawPath(levelPath, fillPaint)
+ c.restore()
+ }
+ }
+
+ if (charging) {
+ c.clipOutPath(scaledBolt)
+ if (invertFillIcon) {
+ c.drawPath(scaledBolt, fillColorStrokePaint)
+ } else {
+ c.drawPath(scaledBolt, fillColorStrokeProtection)
+ }
+ } else if (powerSaveEnabled) {
+ // If power save is enabled draw the perimeter path with colorError
+ c.drawPath(scaledErrorPerimeter, errorPaint)
+ // And draw the plus sign on top of the fill
+ if (!showPercent) {
+ c.drawPath(scaledPlus, errorPaint)
+ }
+ }
+ c.restore()
+
+ if (!charging && batteryLevel < 100 && showPercent) {
+ textPaint.textSize = bounds.width() * 0.38f
+ val textHeight = +textPaint.fontMetrics.ascent
+ val pctX = (bounds.width() + textHeight) * 0.7f
+ val pctY = bounds.height() * 0.8f
+
+ textPaint.color = fillColor
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+
+ textPaint.color = fillColor.toInt().inv() or 0xFF000000.toInt()
+ c.save()
+ c.clipRect(
+ fillRect.left,
+ fillRect.top,
+ fillRect.right - (fillRect.width() * (1 - fillFraction)),
+ fillRect.bottom
+ )
+ c.drawText(batteryLevel.toString(), pctX, pctY, textPaint)
+ c.restore()
+ }
+ }
+
+ private fun batteryColorForLevel(level: Int): Int {
+ return when {
+ charging || powerSaveEnabled -> fillColor
+ else -> getColorForLevel(level)
+ }
+ }
+
+ private fun getColorForLevel(level: Int): Int {
+ var thresh: Int
+ var color = 0
+ var i = 0
+ while (i < colorLevels.size) {
+ thresh = colorLevels[i]
+ color = colorLevels[i + 1]
+ if (level <= thresh) {
+
+ // Respect tinting for "normal" level
+ return if (i == colorLevels.size - 2) {
+ fillColor
+ } else {
+ color
+ }
+ }
+ i += 2
+ }
+ return color
+ }
+
+ /**
+ * Alpha is unused internally, and should be defined in the colors passed to {@link setColors}.
+ * Further, setting an alpha for a dual tone battery meter doesn't make sense without bounds
+ * defining the minimum background fill alpha. This is because fill + background must be equal
+ * to the net alpha passed in here.
+ */
+ override fun setAlpha(alpha: Int) {
+ }
+
+ override fun setColorFilter(colorFilter: ColorFilter?) {
+ fillPaint.colorFilter = colorFilter
+ fillColorStrokePaint.colorFilter = colorFilter
+ dualToneBackgroundFill.colorFilter = colorFilter
+ }
+
+ /**
+ * Deprecated, but required by Drawable
+ */
+ @Deprecated(
+ "Deprecated in Java",
+ ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"),
+ )
+ override fun getOpacity(): Int {
+ return PixelFormat.OPAQUE
+ }
+
+ override fun getIntrinsicHeight(): Int {
+ return intrinsicHeight
+ }
+
+ override fun getIntrinsicWidth(): Int {
+ return intrinsicWidth
+ }
+
+ /**
+ * Set the fill level
+ */
+ @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
+ override fun setBatteryLevel(l: Int) {
+ invertFillIcon = if (l >= 67) true else if (l <= 33) false else invertFillIcon
+ batteryLevel = l
+ levelColor = batteryColorForLevel(batteryLevel)
+ invalidateSelf()
+ }
+
+ fun getBatteryLevel(): Int {
+ return batteryLevel
+ }
+
+ override fun onBoundsChange(bounds: Rect) {
+ super.onBoundsChange(bounds)
+ updateSize()
+ }
+
+ fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {
+ padding.left = left
+ padding.top = top
+ padding.right = right
+ padding.bottom = bottom
+
+ updateSize()
+ }
+
+ override fun setColors(fgColor: Int, bgColor: Int, singleToneColor: Int) {
+ fillColor = if (dualTone) fgColor else singleToneColor
+
+ fillPaint.color = fillColor
+ fillColorStrokePaint.color = fillColor
+
+ backgroundColor = bgColor
+ dualToneBackgroundFill.color = bgColor
+
+ // Also update the level color, since fillColor may have changed
+ levelColor = batteryColorForLevel(batteryLevel)
+
+ invalidateSelf()
+ }
+
+ private fun postInvalidate() {
+ unscheduleSelf(invalidateRunnable)
+ scheduleSelf(invalidateRunnable, 0)
+ }
+
+ private fun updateSize() {
+ val b = bounds
+ if (b.isEmpty) {
+ scaleMatrix.setScale(1f, 1f)
+ } else {
+ scaleMatrix.setScale((b.right / WIDTH), (b.bottom / HEIGHT))
+ }
+
+ perimeterPath.transform(scaleMatrix, scaledPerimeter)
+ errorPerimeterPath.transform(scaleMatrix, scaledErrorPerimeter)
+ fillMask.transform(scaleMatrix, scaledFill)
+ scaledFill.computeBounds(fillRect, true)
+ boltPath.transform(scaleMatrix, scaledBolt)
+ plusPath.transform(scaleMatrix, scaledPlus)
+
+ // It is expected that this view only ever scale by the same factor in each dimension, so
+ // just pick one to scale the strokeWidths
+ val scaledStrokeWidth =
+
+ (b.right / WIDTH * PROTECTION_STROKE_WIDTH).coerceAtLeast(PROTECTION_MIN_STROKE_WIDTH)
+
+ fillColorStrokePaint.strokeWidth = scaledStrokeWidth
+ fillColorStrokeProtection.strokeWidth = scaledStrokeWidth
+ }
+
+ @SuppressLint("RestrictedApi")
+ private fun loadPaths() {
+ val pathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPerimeterRStyleB)
+ else context.getString(R.string.config_landscapeBatteryPerimeterRStyleB)
+ perimeterPath.set(PathParser.createPathFromPathData(pathString))
+ perimeterPath.computeBounds(RectF(), true)
+
+ val errorPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryErrorRStyleB)
+ else context.getString(R.string.config_landscapeBatteryErrorRStyleB)
+ errorPerimeterPath.set(PathParser.createPathFromPathData(errorPathString))
+ errorPerimeterPath.computeBounds(RectF(), true)
+
+ val fillMaskString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryFillMaskRStyleB)
+ else context.getString(R.string.config_landscapeBatteryFillMaskRStyleB)
+ fillMask.set(PathParser.createPathFromPathData(fillMaskString))
+ // Set the fill rect so we can calculate the fill properly
+ fillMask.computeBounds(fillRect, true)
+
+ val boltPathString =
+ if(xposed) modRes.getString(R.string.config_landscapeBatteryBoltRStyleB)
+ else context.getString(R.string.config_landscapeBatteryBoltRStyleB)
+ boltPath.set(PathParser.createPathFromPathData(boltPathString))
+
+ val plusPathString =
+ if (xposed) modRes.getString(R.string.config_landscapeBatteryPlusRStyleB)
+ else context.getString(R.string.config_landscapeBatteryPlusRStyleB)
+ plusPath.set(PathParser.createPathFromPathData(plusPathString))
+
+ dualTone = false
+ }
+
+ companion object {
+ private val TAG = RLandscapeBatteryStyleB::class.java.simpleName
+ private const val WIDTH = 24f
+ private const val HEIGHT = 12f
+ private const val CRITICAL_LEVEL = 20
+
+ // On a 12x20 grid, how wide to make the fill protection stroke.
+ // Scales when our size changes
+ private const val PROTECTION_STROKE_WIDTH = 3f
+
+ // Arbitrarily chosen for visibility at small sizes
+ private const val PROTECTION_MIN_STROKE_WIDTH = 6f
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/HookTester.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/HookTester.java
new file mode 100644
index 000000000..7fb9b7370
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/HookTester.java
@@ -0,0 +1,49 @@
+package it.dhd.oxygencustomizer.xposed.hooks;
+
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class HookTester extends XposedMods {
+ public HookTester(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {}
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ new Thread(() -> {
+ Intent broadcast = new Intent(Constants.ACTION_XPOSED_CONFIRMED);
+
+ broadcast.putExtra("packageName", lpparam.packageName);
+
+ broadcast.setPackage(BuildConfig.APPLICATION_ID);
+
+ mContext.sendBroadcast(broadcast);
+ }).start();
+ }
+ };
+
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(Constants.ACTION_CHECK_XPOSED_ENABLED);
+
+ mContext.registerReceiver(broadcastReceiver, filter, Context.RECEIVER_EXPORTED);
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return true;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/framework/Buttons.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/framework/Buttons.java
new file mode 100644
index 000000000..d48be8b5d
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/framework/Buttons.java
@@ -0,0 +1,287 @@
+package it.dhd.oxygencustomizer.xposed.hooks.framework;
+
+import static android.content.Context.RECEIVER_EXPORTED;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.hookMethod;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.findMethodExact;
+import static de.robv.android.xposed.XposedHelpers.getIntField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.Buttons.BUTTONS_VOLUME_MUSIC;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.Lockscreen.DISABLE_POWER;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.media.AudioManager;
+import android.os.Handler;
+import android.os.SystemClock;
+import android.os.VibrationAttributes;
+import android.os.VibrationEffect;
+import android.view.KeyEvent;
+import android.view.ViewConfiguration;
+
+import java.lang.reflect.Method;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+
+public class Buttons extends XposedMods {
+
+ private final String TAG = "Oxygen Customizer - Buttons ";
+ public static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private static boolean holdVolumeToSkip = false;
+ private static boolean holdVolumeToTorch = false;
+ private static boolean volumeToTorchHasTimeout = false;
+ private long wakeTime = 0;
+ // private boolean isVolumeLongPress = false;
+ private boolean isVolDown = false;
+ private boolean disablePowerOnLockscreen = false;
+ private boolean broadcastRegistered = false;
+ private static Object PWMExImpl = null;
+ private int volumeToTorchTimeout = 5000;
+ private static boolean volumeToTorchProximity = false;
+ private static SensorManager sensorManager;
+ private static Sensor proximitySensor;
+ private static SensorEventListener proximitySensorListener;
+ private static boolean shouldTorch = false;
+ Handler mHandler;
+
+ final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ try {
+ String action = intent.getAction();
+ log("Received broadcast: " + action);
+ if (action.equals(Constants.ACTION_POWER_MENU)) {
+ showPowerMenu();
+ }
+ } catch (Throwable ignored) {}
+ }
+ };
+
+ public Buttons(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+
+ holdVolumeToSkip = Xprefs.getBoolean(BUTTONS_VOLUME_MUSIC, false);
+ disablePowerOnLockscreen = Xprefs.getBoolean(DISABLE_POWER, false);
+ holdVolumeToTorch = Xprefs.getBoolean("volbtn_torch", false);
+ volumeToTorchHasTimeout = Xprefs.getBoolean("volbtn_torch_enable_timeout", false);
+ volumeToTorchTimeout = Xprefs.getSliderInt("volbtn_torch_timeout", 5) * 1000;
+ volumeToTorchProximity = Xprefs.getBoolean("volbtn_torch_use_proximity", false);
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+
+ if (!broadcastRegistered) {
+ broadcastRegistered = true;
+
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(Constants.ACTION_POWER_MENU);
+ mContext.registerReceiver(broadcastReceiver, intentFilter, RECEIVER_EXPORTED); //for Android 14, receiver flag is mandatory
+ }
+
+ Class> PhoneWindowManagerClass;
+ Class> PhoneWindowManagerExtImpl;
+ Method overrideInterceptKeyBeforeQueueing; // PhoneWindowManagerExtImpl
+ Method overrideShowGlobalActionsInternal; // PhoneWindowManagerExtImpl
+
+ try {
+ PhoneWindowManagerClass = findClass("com.android.server.policy.PhoneWindowManager", lpparam.classLoader);
+ PhoneWindowManagerExtImpl = findClass("com.android.server.policy.PhoneWindowManagerExtImpl", lpparam.classLoader);
+
+ overrideInterceptKeyBeforeQueueing = findMethodExact(PhoneWindowManagerExtImpl, "overrideInterceptKeyBeforeQueueing", KeyEvent.class, int.class);
+ overrideShowGlobalActionsInternal = findMethodExact(PhoneWindowManagerExtImpl, "overrideShowGlobalActionsInternal");
+
+ Runnable mVolumeLongPress = () -> {
+ try {
+ Intent keyIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
+ KeyEvent keyEvent = new KeyEvent(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), KeyEvent.ACTION_DOWN, (isVolDown) ? KeyEvent.KEYCODE_MEDIA_PREVIOUS : KeyEvent.KEYCODE_MEDIA_NEXT, 0);
+ keyIntent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent);
+ KeyEvent mediaEvent = new KeyEvent(KeyEvent.ACTION_DOWN, (isVolDown) ? KeyEvent.KEYCODE_MEDIA_PREVIOUS : KeyEvent.KEYCODE_MEDIA_NEXT);
+ SystemUtils.AudioManager().dispatchMediaKeyEvent(mediaEvent);
+
+ mediaEvent = KeyEvent.changeAction(mediaEvent, KeyEvent.ACTION_UP);
+ keyIntent.putExtra(Intent.EXTRA_KEY_EVENT, keyEvent);
+ SystemUtils.AudioManager().dispatchMediaKeyEvent(mediaEvent);
+
+ SystemUtils.vibrate(VibrationEffect.EFFECT_TICK, VibrationAttributes.USAGE_ACCESSIBILITY);
+ } catch (Throwable t) {
+ log(TAG + " ERROR IN mVolumeLongPress\n" + t);
+ }
+ };
+
+
+ Runnable mToggleFlash = () -> {
+ try {
+ if (SystemUtils.isFlashOn()) {
+ SystemUtils.shutdownFlash();
+
+ SystemUtils.vibrate(VibrationEffect.EFFECT_TICK, VibrationAttributes.USAGE_ACCESSIBILITY);
+
+ }
+ } catch (Throwable ignored) {}
+ };
+
+ Runnable mVolumeLongPressTorch = () -> {
+ try {
+ if (volumeToTorchProximity) {
+ sensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE);
+ proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
+ if (proximitySensor != null) {
+ sensorManager.registerListener(proximitySensorListener, proximitySensor, SensorManager.SENSOR_DELAY_NORMAL);
+ }
+ if (proximitySensor == null) {
+ // nothing to do
+ shouldTorch = true;
+ } else {
+ proximitySensorListener = new SensorEventListener() {
+ @Override
+ public void onSensorChanged(SensorEvent event) {
+ float distance = event.values[0];
+ shouldTorch = !(distance < proximitySensor.getMaximumRange());
+ }
+
+ @Override
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {
+
+ }
+ };
+ }
+ if (proximitySensor != null) {
+ sensorManager.unregisterListener(proximitySensorListener);
+ }
+ }
+ if (volumeToTorchProximity && !shouldTorch) {
+ return;
+ }
+ SystemUtils.toggleFlash();
+ SystemUtils.vibrate(VibrationEffect.EFFECT_TICK, VibrationAttributes.USAGE_ACCESSIBILITY);
+ if (mHandler.hasCallbacks(mToggleFlash)) mHandler.removeCallbacks(mToggleFlash);
+ if (volumeToTorchHasTimeout && SystemUtils.isFlashOn()) {
+ mHandler.postDelayed(mToggleFlash, volumeToTorchTimeout);
+ }
+ } catch (Throwable t) {
+ log(TAG + " ERROR IN mVolumeLongPressTorch\n" + t);
+ }
+ };
+
+ hookAllMethods(PhoneWindowManagerExtImpl, "overrideInit", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ try {
+ PWMExImpl = param.thisObject;
+ } catch (Throwable ignored) {
+ PWMExImpl = null;
+ }
+ }
+ });
+
+ hookMethod(overrideInterceptKeyBeforeQueueing, new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!holdVolumeToSkip && !holdVolumeToTorch) return;
+
+ try {
+ Object mBase = getObjectField(param.thisObject, "mBase");
+ mHandler = (Handler) getObjectField(mBase, "mHandler");
+
+ KeyEvent e = (KeyEvent) param.args[0];
+ int Keycode = e.getKeyCode();
+
+ switch (e.getAction()) {
+ case KeyEvent.ACTION_UP -> {
+ if (mHandler.hasCallbacks(mVolumeLongPress) || mHandler.hasCallbacks(mVolumeLongPressTorch)) {
+ SystemUtils.AudioManager().adjustStreamVolume(AudioManager.STREAM_MUSIC, Keycode == KeyEvent.KEYCODE_VOLUME_DOWN ? AudioManager.ADJUST_LOWER : AudioManager.ADJUST_RAISE, 0);
+ if (mHandler.hasCallbacks(mVolumeLongPress)) mHandler.removeCallbacks(mVolumeLongPress);
+ if (mHandler.hasCallbacks(mVolumeLongPressTorch)) mHandler.removeCallbacks(mVolumeLongPressTorch);
+ if (mHandler.hasCallbacks(mToggleFlash)) mHandler.removeCallbacks(mToggleFlash);
+ }
+ }
+ case KeyEvent.ACTION_DOWN -> {
+ if (!SystemUtils.PowerManager().isInteractive() &&
+ (Keycode == KeyEvent.KEYCODE_VOLUME_DOWN ||
+ Keycode == KeyEvent.KEYCODE_VOLUME_UP)) {
+ if (SystemUtils.AudioManager().isMusicActive()) {
+ isVolDown = (Keycode == KeyEvent.KEYCODE_VOLUME_DOWN);
+ mHandler.postDelayed(mVolumeLongPress, ViewConfiguration.getLongPressTimeout());
+ param.setResult(0);
+ } else {
+ int audioMode = SystemUtils.AudioManager().getMode();
+ if (audioMode == AudioManager.MODE_IN_CALL ||
+ audioMode == AudioManager.MODE_IN_COMMUNICATION ||
+ audioMode == AudioManager.MODE_RINGTONE) return;
+ if (holdVolumeToTorch) {
+ mHandler.postDelayed(mVolumeLongPressTorch, ViewConfiguration.getLongPressTimeout());
+ param.setResult(0);
+ }
+ }
+ }
+ }
+ }
+ } catch (Throwable t) {
+ log(TAG + " ERROR IN interceptKeyBeforeQueueing\n" + t);
+ }
+ }
+ });
+
+ hookAllMethods(PhoneWindowManagerClass, "startedWakingUp", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+
+ if (!holdVolumeToTorch) return;
+ int r = (int) param.args[param.args.length-1];
+
+ if (r == 1) {
+ wakeTime = SystemClock.uptimeMillis();
+ }
+ }
+ });
+
+
+ hookMethod(overrideShowGlobalActionsInternal, new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!disablePowerOnLockscreen) return;
+ Object mBase = getObjectField(param.thisObject, "mBase");
+ if (mBase == null) return;
+ int mCurrentUserId = getIntField(param.thisObject, "mCurrentUserId");
+ if (disablePowerOnLockscreen &&
+ (boolean) callMethod(mBase, "keyguardOn") &&
+ (boolean) callMethod(mBase, "isKeyguardSecure", mCurrentUserId)){
+ param.setResult(null);
+ }
+ }
+ });
+
+ } catch (Throwable t) {
+ log(t);
+ }
+ }
+
+ public static void showPowerMenu() {
+ if (PWMExImpl == null) return;
+ callMethod(PWMExImpl, "overrideShowGlobalActionsInternal");
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return packageName.equals(Constants.Packages.FRAMEWORK);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/launcher/Launcher.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/launcher/Launcher.java
new file mode 100644
index 000000000..72ddef868
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/launcher/Launcher.java
@@ -0,0 +1,149 @@
+package it.dhd.oxygencustomizer.xposed.hooks.launcher;
+
+import static android.content.Context.RECEIVER_EXPORTED;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookConstructor;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getIntField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.provider.Settings;
+import android.util.AttributeSet;
+import android.view.View;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.XposedHelpers;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class Launcher extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.LAUNCHER;
+
+ private int mFolderRows, mFolderColumns, mDrawerColumns;
+ private boolean mFolderRearrange, mFolderPreview, mDrawerRearrange, mOpenAppDetails;
+
+ public Launcher(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ mFolderRows = Xprefs.getSliderInt("folder_rows", 3);
+ mFolderColumns = Xprefs.getSliderInt("folder_columns", 3);
+ mDrawerColumns = Xprefs.getSliderInt("drawer_columns", 4);
+ mFolderRearrange = Xprefs.getBoolean("rearrange_folder", true);
+ mFolderPreview = Xprefs.getBoolean("rearrange_preview", true);
+ mDrawerRearrange = Xprefs.getBoolean("rearrange_drawer", true);
+ mOpenAppDetails = Xprefs.getBoolean("launcher_open_app_details", false);
+
+ if (Key.length > 0 &&(
+ Key[0].equals("folder_rows") ||
+ Key[0].equals("folder_columns") ||
+ Key[0].equals("drawer_columns") ||
+ Key[0].equals("rearrange_folder") ||
+ Key[0].equals("rearrange_preview") ||
+ Key[0].equals("rearrange_drawer")
+ )) {
+ //onConfigChanged();
+ }
+
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+ findAndHookConstructor("com.android.launcher3.InvariantDeviceProfile$GridOption", lpparam.classLoader, Context.class, AttributeSet.class, int.class, new XC_MethodHook() {
+
+ @Override
+ protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
+ log("InvariantDeviceProfile$GridOption constructor called");
+ if (mFolderRearrange) {
+ XposedHelpers.setIntField(param.thisObject, "numFolderColumns", mFolderColumns);
+ XposedHelpers.setIntField(param.thisObject, "numFolderRows", mFolderRows);
+ }
+ if (mFolderPreview) if (mFolderColumns > 3) XposedHelpers.setIntField(param.thisObject, "numFolderPreview", mFolderColumns);
+ if (mDrawerRearrange) XposedHelpers.setIntField(param.thisObject, "numAllAppsColumns", mDrawerColumns);
+ }
+ });
+
+ Class> OplusTaskViewImpl = findClass("com.android.quickstep.views.OplusTaskViewImpl", lpparam.classLoader);
+
+ hookAllMethods(OplusTaskViewImpl, "setIcon", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ View headerView = (View) callMethod(param.thisObject, "getHeaderView");
+ View iconView = (View) callMethod(headerView, "getTaskIcon");
+ View titleView = (View) callMethod(headerView, "getTitleTv");
+ Object task = callMethod(param.thisObject, "getTask");
+ if (task == null) return;
+ Object key = getObjectField(task, "key");
+ if (key == null) return;
+ String pkgName = (String) callMethod(key, "getPackageName");
+ int userId = getIntField(key, "userId");
+ final ClickListener clickListener = new ClickListener(pkgName, userId);
+
+ iconView.setOnLongClickListener(clickListener);
+ titleView.setOnLongClickListener(clickListener);
+ }
+ });
+
+ Class> DockIconView = findClass("com.oplus.quickstep.dock.DockIconView", lpparam.classLoader);
+ findAndHookMethod(DockIconView, "setIcon", Drawable.class, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ Object task = callMethod(param.thisObject, "getTask");
+ if (task == null) return;
+ Object key = getObjectField(task, "key");
+ if (key == null) return;
+ String pkgName = (String) callMethod(key, "getPackageName");
+ int userId = getIntField(key, "userId");
+ View iconView = (View) param.thisObject;
+ final ClickListener clickListener = new ClickListener(pkgName, userId);
+ iconView.setOnLongClickListener(clickListener);
+ }
+ });
+
+ }
+
+ class ClickListener implements View.OnLongClickListener {
+
+ final String pkgName;
+ final int userId;
+
+ public ClickListener(String pkgName, int userId) {
+ this.pkgName = pkgName;
+ this.userId = userId;
+ }
+
+ @Override
+ public boolean onLongClick(View v) {
+ if (!mOpenAppDetails) return false;
+ Intent appDetails = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", pkgName, null));
+ appDetails.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ appDetails.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
+ appDetails.putExtra("userId", userId);
+ mContext.startActivity(appDetails);
+ return true;
+ }
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/settings/CustomShortcut.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/settings/CustomShortcut.java
new file mode 100644
index 000000000..e48a6d3ee
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/settings/CustomShortcut.java
@@ -0,0 +1,92 @@
+package it.dhd.oxygencustomizer.xposed.hooks.settings;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.Context;
+import android.content.Intent;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class CustomShortcut extends XposedMods {
+
+ private final String packageName = Constants.Packages.SETTINGS;
+ private Object TopLevelSettings;
+ private boolean showInSettings = true;
+
+ public CustomShortcut(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ showInSettings = Xprefs.getBoolean("show_entry_settings", true);
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(packageName)) return;
+
+ Class> SettingsPreferenceFragmentClass = findClass("com.android.settings.SettingsPreferenceFragment", lpparam.classLoader);
+ Class> HomeTopCategory = findClass("com.oplus.settings.feature.homepage.HomepageTopCategory", lpparam.classLoader);
+ Class> TopHomePreferenceClass = findClass("com.oplus.settings.widget.preference.SettingsSimpleJumpPreference", lpparam.classLoader);
+
+ Class> TopLevelSettingsClass = findClass("com.oplus.settings.feature.homepage.OplusTopLevelSettings", lpparam.classLoader);
+ hookAllMethods(TopLevelSettingsClass, "onPreferenceTreeClick", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if("Oxygen Customizer".equals(getObjectField(param.args[0], "mTitle"))) {
+ param.setResult(true);
+
+ Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(BuildConfig.APPLICATION_ID);
+ mContext.startActivity(intent);
+ }
+ }
+ });
+
+ hookAllConstructors(TopLevelSettingsClass, new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ TopLevelSettings = param.thisObject;
+ }
+ });
+
+ hookAllMethods(SettingsPreferenceFragmentClass, "setPreferenceScreen", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if(!showInSettings) return;
+
+ Object OCPreference = TopHomePreferenceClass.getConstructor(Context.class).newInstance(mContext);
+
+ //personalized_customization_entrance
+ Object mWallpaperCategory = callMethod(param.args[0], "findPreference", "notification_settings_category");
+ Object mPersonalizePref = callMethod(param.args[0], "findPreference", "personalized_customization_entrance");
+ Object resId = callMethod(mPersonalizePref, "getIcon");
+
+ callMethod(OCPreference, "setIcon",
+ resId);
+ callMethod(OCPreference, "setTitle", "Oxygen Customizer");
+ callMethod(OCPreference, "setOrder", 1);
+ callMethod(OCPreference, "setKey", "oxygen_customizer");
+ callMethod(mWallpaperCategory, "addPreference", OCPreference);
+ }
+ });
+ }
+
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return packageName.equals(this.packageName);
+ }
+
+
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/AdaptivePlayback.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/AdaptivePlayback.java
new file mode 100644
index 000000000..40e6fa619
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/AdaptivePlayback.java
@@ -0,0 +1,103 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getIntField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.Context;
+import android.os.Handler;
+import android.view.KeyEvent;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class AdaptivePlayback extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+
+ private boolean mAdaptivePlaybackEnabled;
+ private int mAdaptivePlaybackTimeout;
+ private boolean mAdaptivePlaybackResumable;
+ private final int STREAM_MUSIC = 3;
+
+ private Class> mVolumeState = null;
+ private Object mAudio = null;
+ private Handler mWorker = null;
+ private static final Object ADAPTIVE_PLAYBACK_TOKEN = new Object();
+
+
+ public AdaptivePlayback(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ mAdaptivePlaybackEnabled = Xprefs.getBoolean(Constants.Preferences.ADAPTIVE_PLAYBACK_ENABLED, false);
+ mAdaptivePlaybackTimeout = Xprefs.getInt(Constants.Preferences.ADAPTIVE_PLAYBACK_TIMEOUT, 30000);
+
+ if (Key.length > 0 && Key[0].equals(Constants.Preferences.ADAPTIVE_PLAYBACK_ENABLED)) {
+ if (!mAdaptivePlaybackEnabled && mWorker != null) {
+ mWorker.removeCallbacksAndMessages(ADAPTIVE_PLAYBACK_TOKEN);
+ mAdaptivePlaybackResumable = false;
+ }
+ }
+
+ }
+
+ final Runnable mAdaptivePlaybackRunnable = () -> mAdaptivePlaybackResumable = false;
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+ mVolumeState = findClass("com.android.systemui.plugins.VolumeDialogController$StreamState", lpparam.classLoader);
+
+ Class> VolumeDialogControllerImpl = findClass("com.android.systemui.volume.VolumeDialogControllerImpl", lpparam.classLoader);
+ hookAllConstructors(VolumeDialogControllerImpl, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mAudio = getObjectField(param.thisObject, "mAudio");
+ mWorker = (Handler) getObjectField(param.thisObject, "mWorker");
+ }
+ });
+ hookAllMethods(VolumeDialogControllerImpl, "updateStreamLevelW", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (!mAdaptivePlaybackEnabled) return;
+ Object volState = callMethod(param.thisObject, "streamStateW", param.args[0]);
+ int level = (int) getIntField(volState, "level");
+ int stream = (int) param.args[0];
+ boolean isMusicActive = (boolean) callMethod(mAudio, "isMusicActive");
+ if (mAdaptivePlaybackEnabled && stream == STREAM_MUSIC && level == 0
+ && isMusicActive) {
+ callMethod(mAudio, "dispatchMediaKeyEvent", new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PAUSE));
+ callMethod(mAudio, "dispatchMediaKeyEvent", new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PAUSE));
+ mAdaptivePlaybackResumable = true;
+
+ mWorker.removeCallbacksAndMessages(ADAPTIVE_PLAYBACK_TOKEN);
+ mWorker.postDelayed(mAdaptivePlaybackRunnable, ADAPTIVE_PLAYBACK_TOKEN,
+ mAdaptivePlaybackTimeout);
+ }
+ if (stream == STREAM_MUSIC && level > 0 && mAdaptivePlaybackResumable) {
+ mWorker.removeCallbacksAndMessages(ADAPTIVE_PLAYBACK_TOKEN);
+ callMethod(mAudio, "dispatchMediaKeyEvent", new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY));
+ callMethod(mAudio, "dispatchMediaKeyEvent", new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY));
+ mAdaptivePlaybackResumable = false;
+ }
+ }
+ });
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/AudioDataProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/AudioDataProvider.java
new file mode 100644
index 000000000..f727ccad3
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/AudioDataProvider.java
@@ -0,0 +1,95 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.media.MediaMetadata;
+
+import java.util.ArrayList;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class AudioDataProvider extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+
+ public MediaMetadata mMediaMetadata;
+ public int mPlaybackState;
+ private final ArrayList mInfoCallbacks = new ArrayList<>();
+ @SuppressLint("StaticFieldLeak")
+ private static AudioDataProvider instance = null;
+
+ public AudioDataProvider(Context context) {
+ super(context);
+ instance = this;
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ Class> NotificationMediaManager = findClass("com.android.systemui.statusbar.NotificationMediaManager", lpparam.classLoader);
+ // onPlaybackStateChanged
+ // onMetadataChanged
+
+ // Stole method from KeyguardSliceProvider
+ Class> KeyguardSliceProvider = findClass("com.android.systemui.keyguard.KeyguardSliceProvider", lpparam.classLoader);
+ hookAllMethods(KeyguardSliceProvider, "onPrimaryMetadataOrStateChanged", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ //log("onPrimaryMetadataOrStateChanged: PlaybackState: " + param.args[1] + " Metadata: " + param.args[0]);
+ mMediaMetadata = (MediaMetadata) param.args[0];
+ mPlaybackState = (int) param.args[1];
+ onPrimaryMetadataOrStateChanged((int) param.args[1]);
+ }
+ });
+
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+
+ private void onPrimaryMetadataOrStateChanged(int state) {
+ for(AudioInfoCallbacks callback : mInfoCallbacks)
+ {
+ try
+ {
+ callback.onPrimaryMetadataOrStateChanged(state);
+ }
+ catch (Throwable ignored){}
+ }
+ }
+
+ public interface AudioInfoCallbacks
+ {
+ void onPrimaryMetadataOrStateChanged(int state);
+ }
+
+ public static void registerInfoCallback(AudioInfoCallbacks callback)
+ {
+ instance.mInfoCallbacks.add(callback);
+ }
+
+ public static void unregisterInfoCallback(AudioInfoCallbacks callback)
+ {
+ instance.mInfoCallbacks.remove(callback);
+ }
+
+ public static int getPlaybackState() {
+ return instance.mPlaybackState;
+ }
+
+ public static MediaMetadata getMediaMetadata() {
+ return instance.mMediaMetadata;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/BatteryDataProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/BatteryDataProvider.java
new file mode 100644
index 000000000..992c40ae5
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/BatteryDataProvider.java
@@ -0,0 +1,169 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getBooleanField;
+import static de.robv.android.xposed.XposedHelpers.getIntField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XPLauncher;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class BatteryDataProvider extends XposedMods {
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+
+ public static final int CHARGING_FAST = 2;
+
+ public static final int BATTERY_STATUS_DISCHARGING = 3;
+
+ @SuppressLint("StaticFieldLeak")
+ private static BatteryDataProvider instance = null;
+
+ List mStatusCallbacks = new ArrayList<>();
+ private boolean mCharging;
+ private int mCurrentLevel = 0;
+
+
+ private final ArrayList mInfoCallbacks = new ArrayList<>();
+ private boolean mPowerSave = false;
+ private boolean mIsFastCharging = false;
+
+
+ public BatteryDataProvider(Context context) {
+ super(context);
+ instance = this;
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {}
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ Class> BatteryStatusClass = findClass("com.android.settingslib.fuelgauge.BatteryStatus", lpparam.classLoader);
+ Class> BatteryControllerImplClass = findClass("com.android.systemui.statusbar.policy.BatteryControllerImpl", lpparam.classLoader);
+
+ XC_MethodHook batteryDataRefreshHook = new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mCurrentLevel = getIntField(param.thisObject, "mLevel");
+ mCharging = getBooleanField(param.thisObject, "mPluggedIn")
+ || getBooleanField(param.thisObject, "mCharging")
+ || getBooleanField(param.thisObject, "mWirelessCharging");
+ mPowerSave = getBooleanField(param.thisObject, "mPowerSave");
+
+ onBatteryInfoChanged();
+ }
+ };
+
+ hookAllMethods(BatteryControllerImplClass, "fireBatteryLevelChanged", batteryDataRefreshHook);
+ hookAllMethods(BatteryControllerImplClass, "firePowerSaveChanged", batteryDataRefreshHook);
+
+
+ hookAllConstructors(BatteryStatusClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mIsFastCharging = callMethod(param.thisObject, "getChargingSpeed", mContext).equals(CHARGING_FAST);
+ if(param.args.length > 0 && param.args.length != 6) {
+ try {
+ onBatteryStatusChanged((int) getObjectField(param.thisObject, "status"), (Intent) param.args[0]);
+ } catch (Throwable ignored) {}
+ }
+ }
+ });
+ }
+
+ private void onBatteryStatusChanged(int status, Intent intent) {
+ for(BatteryStatusCallback callback : mStatusCallbacks)
+ {
+ try
+ {
+ callback.onBatteryStatusChanged(status, intent);
+ }
+ catch (Throwable ignored){}
+ }
+ }
+
+ public static void registerStatusCallback(BatteryStatusCallback callback)
+ {
+ instance.mStatusCallbacks.add(callback);
+ }
+
+ /** @noinspection unused*/
+ public static void unRegisterStatusCallback(BatteryStatusCallback callback)
+ {
+ instance.mStatusCallbacks.remove(callback);
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName) && !XPLauncher.isChildProcess;
+ }
+
+ public static void registerInfoCallback(BatteryInfoCallback callback)
+ {
+ instance.mInfoCallbacks.add(callback);
+ }
+
+ /** @noinspection unused*/
+ public static void unRegisterInfoCallback(BatteryInfoCallback callback)
+ {
+ instance.mInfoCallbacks.remove(callback);
+ }
+
+ public static boolean isCharging()
+ {
+ return instance.mCharging;
+ }
+
+ public static int getCurrentLevel()
+ {
+ return instance.mCurrentLevel;
+ }
+
+ public static boolean isPowerSaving()
+ {
+ return instance.mPowerSave;
+ }
+
+ public static boolean isFastCharging()
+ {
+ return instance.mCharging && instance.mIsFastCharging;
+ }
+
+ public static void refreshAllInfoCallbacks()
+ {
+ instance.onBatteryInfoChanged();
+ }
+ private void onBatteryInfoChanged() {
+ for(BatteryInfoCallback callback : mInfoCallbacks)
+ {
+ try
+ {
+ callback.onBatteryInfoChanged();
+ }
+ catch (Throwable ignored){}
+ }
+ }
+ public interface BatteryInfoCallback
+ {
+ void onBatteryInfoChanged();
+ }
+
+
+ public interface BatteryStatusCallback
+ {
+ void onBatteryStatusChanged(int batteryStatus, Intent batteryStatusIntent);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/FeatureEnabler.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/FeatureEnabler.java
new file mode 100644
index 000000000..154105dcf
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/FeatureEnabler.java
@@ -0,0 +1,248 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static android.content.Context.RECEIVER_EXPORTED;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.BuildConfig.APPLICATION_ID;
+import static it.dhd.oxygencustomizer.utils.AppUtils.restartAllScope;
+import static it.dhd.oxygencustomizer.utils.Constants.Packages.SYSTEM_UI;
+import static it.dhd.oxygencustomizer.xposed.ResourceManager.modRes;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+
+import android.app.AlertDialog;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.hardware.biometrics.BiometricManager;
+import android.view.MotionEvent;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import androidx.core.content.res.ResourcesCompat;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.utils.ShellUtils;
+
+public class FeatureEnabler extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private Class> FeatureOptionsVolatile = null;
+ private boolean hideSosPowerMenu, showAdvancedReboot, useAuthForAdvancedReboot;
+ private int volumePanelPosition;
+ private Drawable mAdvancedRebootDrawable;
+ private int mAdvancedRebootTopMargin;
+ private Paint buttonPaint;
+ private Paint textPaint;
+ private String buttonText = "Advanced Reboot";
+ private int centerX;
+ private int centerY;
+ private int radius;
+ private Class> SystemUIDialogClass;
+ private Class> OplusThemeSystemUiDialog;
+ private boolean broadcastRegistered = false;
+
+ final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ try {
+ String action = intent.getAction();
+ if (action.equals(Constants.ACTION_AUTH_SUCCESS_SHOW_ADVANCED_REBOOT)) {
+ log("Oxygen Customizer - Advanced Reboot Auth Success");
+ showDialog();
+ }
+ } catch (Throwable t) {
+ log("Oxygen Customizer - Advanced Reboot Error: " + t.getMessage());
+ }
+ }
+ };
+
+ public FeatureEnabler(Context context) {
+ super(context);
+ mAdvancedRebootDrawable = ResourcesCompat.getDrawable(mContext.getResources(), mContext.getResources().getIdentifier("oplus_reboot", "drawable", listenPackage), mContext.getTheme());
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ volumePanelPosition = Integer.parseInt(Xprefs.getString("volume_panel_position", "0"));
+ hideSosPowerMenu = Xprefs.getBoolean("power_menu_hide_sos", false);
+ showAdvancedReboot = Xprefs.getBoolean("show_advanced_reboot", false);
+ useAuthForAdvancedReboot = Xprefs.getBoolean("advanced_reboot_auth", false);
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!listenPackage.equals(lpparam.packageName)) return;
+
+ if (!broadcastRegistered) {
+ broadcastRegistered = true;
+
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(Constants.ACTION_AUTH_SUCCESS_SHOW_ADVANCED_REBOOT);
+ mContext.registerReceiver(broadcastReceiver, intentFilter, RECEIVER_EXPORTED); //for Android 14, receiver flag is mandatory
+ }
+
+ Class> ShutdownViewControl = findClass("com.oplus.systemui.shutdown.ShutdownViewControl", lpparam.classLoader);
+ SystemUIDialogClass = findClass("com.android.systemui.statusbar.phone.SystemUIDialog", lpparam.classLoader);
+ OplusThemeSystemUiDialog = findClass("com.oplus.systemui.common.dialog.OplusThemeSystemUiDialog", lpparam.classLoader);
+
+ Class> ShutdownView = findClass("com.oplus.systemui.shutdown.OplusShutdownView", lpparam.classLoader);
+
+ findAndHookMethod(ShutdownView, "onDraw", Canvas.class, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (showAdvancedReboot) {
+ drawAdvancedReboot((Canvas) param.args[0], param.thisObject);
+ }
+ }
+ });
+ findAndHookMethod(ShutdownView, "onTouchEvent", "android.view.MotionEvent", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!showAdvancedReboot) return;
+ MotionEvent event = (MotionEvent) param.args[0];
+ if (event.getAction() == MotionEvent.ACTION_UP) {
+ float distanceX = event.getX() - centerX;
+ float distanceY = event.getY() - centerY;
+ double distanceFromCenter = Math.sqrt(distanceX * distanceX + distanceY * distanceY);
+
+ if (distanceFromCenter <= radius) {
+ Object mTouchEventListener = getObjectField(param.thisObject, "mTouchEventListener");
+
+ if (useAuthForAdvancedReboot && ((BiometricManager) mContext.getSystemService(BiometricManager.class)).canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) == BiometricManager.BIOMETRIC_SUCCESS) {
+ showAuth();
+ } else {
+ try {
+ showDialog();
+ } catch (Throwable t) {
+ log("Oxygen Customizer - Advanced Reboot Error: " + t.getMessage());
+ }
+ }
+ }
+ }
+ }
+ });
+
+ hookAllMethods(ShutdownView, "isShowEmergency", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (hideSosPowerMenu)
+ param.setResult(false);
+ }
+ });
+
+ Class> FeatureOptions = findClass("com.oplusos.systemui.common.feature.FeatureOption", lpparam.classLoader);
+
+
+ hookAllMethods(FeatureOptions, "isOplusVolumeKeyInRight", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ log("FeatureOption isOplusVolumeKeyInRight");
+ if (volumePanelPosition == 0) return;
+
+
+ if (volumePanelPosition == 1)
+ param.setResult(true);
+ else
+ param.setResult(false);
+ }
+ });
+ }
+
+ private void showAuth() {
+
+ Intent intent = new Intent();
+ intent.setComponent(new ComponentName(APPLICATION_ID, "it.dhd.oxygencustomizer.ui.activity.AuthActivity"));
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mContext.startActivity(intent);
+
+ }
+
+ private void showDialog() throws Exception {
+ log("Oxygen Customizer - Advanced Reboot Dialog");
+ final AlertDialog dialog = (AlertDialog) SystemUIDialogClass.getConstructor(Context.class).newInstance(mContext);
+ //final AlertDialog dialog = (AlertDialog) OplusThemeSystemUiDialog.getConstructor(Context.class, int.class).newInstance(mContext, ResourcesCompat.get);
+ dialog.setTitle(modRes.getString(R.string.advanced_reboot_title));
+ ListView listView = new ListView(mContext);
+ ArrayAdapter adapter = new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1);
+ adapter.add(modRes.getString(R.string.advanced_reboot_recovery));
+ adapter.add(modRes.getString(R.string.advanced_reboot_bootloader));
+ adapter.add(modRes.getString(R.string.advanced_reboot_safe_mode));
+ adapter.add(modRes.getString(R.string.advanced_reboot_fast_reboot));
+ adapter.add(modRes.getString(R.string.advanced_reboot_systemui));
+ listView.setAdapter(adapter);
+ listView.setDividerHeight(0);
+ listView.setDivider(null);
+ listView.setScrollContainer(false);
+ listView.setOnItemClickListener((parent, view, position, id) -> {
+ switch (position) {
+ case 0 -> ShellUtils.execCommand("reboot recovery", true);
+ case 1 -> ShellUtils.execCommand("reboot bootloader", true);
+ case 2 -> ShellUtils.execCommand("reboot safemode", true);
+ case 3 -> ShellUtils.execCommand("killall zygote", true);
+ case 4 -> restartAllScope(new String[]{SYSTEM_UI});
+ }
+ });
+
+ dialog.setView(listView);
+
+ dialog.show();
+ }
+
+ private void drawAdvancedReboot(Canvas canvas, Object param) {
+ buttonPaint = new Paint();
+ buttonPaint.setColor(mContext.getColor(mContext.getResources().getIdentifier("oplus_road_color", "color", listenPackage)));
+ buttonPaint.setStyle(Paint.Style.FILL);
+
+ textPaint = new Paint();
+ textPaint.setColor(Color.WHITE);
+ textPaint.setTextSize(50);
+ textPaint.setTextAlign(Paint.Align.CENTER);
+
+ int viewWidth = (int) callMethod(param, "getWidth");
+ int viewHeight = (int) callMethod(param, "getHeight");
+
+ int buttonWidth = dp2px(mContext, 150);
+
+ radius = mContext.getResources().getDimensionPixelSize(
+ mContext.getResources().getIdentifier("oplus_default_bar_radius", "dimen", listenPackage));
+
+ centerX = viewWidth / 2;
+ centerY = radius + 100;
+
+ canvas.drawCircle(centerX, centerY, radius, buttonPaint);
+
+ if (mAdvancedRebootDrawable != null) {
+ int iconWidth = mAdvancedRebootDrawable.getIntrinsicWidth();
+ int iconHeight = mAdvancedRebootDrawable.getIntrinsicHeight();
+ Rect iconBounds = new Rect(centerX - iconWidth / 2, centerY - iconHeight / 2, centerX + iconWidth / 2, centerY + iconHeight / 2);
+ mAdvancedRebootDrawable.setBounds(iconBounds);
+ mAdvancedRebootDrawable.draw(canvas);
+ }
+
+ float textX = (float) viewWidth / 2;
+ float textY = centerY + radius + 75;
+ canvas.drawText(buttonText, textX, textY, textPaint);
+ }
+
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/MiscMods.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/MiscMods.java
new file mode 100644
index 000000000..3248d4c68
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/MiscMods.java
@@ -0,0 +1,55 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.Context;
+import android.view.View;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class MiscMods extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+
+ private boolean mHideRotationButton;
+ private View mRotationButton;
+
+ public MiscMods(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ mHideRotationButton = Xprefs.getBoolean("misc_remove_rotate_floating", false);
+
+ if (Key.length > 0 && Key[0].equals("misc_remove_rotate_floating")) {
+ if (mRotationButton != null) mRotationButton.setVisibility(mHideRotationButton ? View.GONE : View.VISIBLE);
+ }
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!listenPackage.equals(lpparam.packageName)) return;
+
+ Class> FloatingRotationButton = findClass("com.android.systemui.shared.rotation.FloatingRotationButton", lpparam.classLoader);
+ hookAllConstructors(FloatingRotationButton, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mRotationButton = (View) getObjectField(param.thisObject, "mKeyButtonView");
+ if (mHideRotationButton) mRotationButton.setVisibility(View.GONE);
+ }
+ });
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/OpUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/OpUtils.java
new file mode 100644
index 000000000..c8721bd58
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/OpUtils.java
@@ -0,0 +1,78 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.callStaticMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+
+import android.content.Context;
+import android.graphics.Color;
+
+import androidx.core.content.res.ResourcesCompat;
+
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class OpUtils extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+
+ private static Class> OpUtils = null;
+ private static Class> UtilsClass = null;
+ private static Class> OplusChargingStrategy = null;
+
+ public OpUtils(Context context) {
+ super(context);
+ }
+
+ public static int getPrimaryColor(Context mContext) {
+ if (mContext == null) return Color.WHITE;
+ int colorIfNull = ResourcesCompat.getColor(mContext.getResources(), android.R.color.system_accent1_600, mContext.getTheme());
+ if (OpUtils == null) return colorIfNull;
+ int color;
+ try {
+ color = (int) callStaticMethod(OpUtils, "getThemeAccentColor", mContext, true);
+ } catch (Throwable t) {
+ color = colorIfNull;
+ }
+ return color;
+ }
+
+ public static int getChargingColor(int defaultColor) {
+ if (OplusChargingStrategy == null) return defaultColor;
+ try {
+ return (int) callMethod(OplusChargingStrategy, "getTechnologyChargingColor", defaultColor);
+ } catch (Throwable t) {
+ return defaultColor;
+ }
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!listenPackage.equals(lpparam.packageName)) return;
+
+ try {
+ OpUtils = findClass("com.oplusos.systemui.util.OpUtils", lpparam.classLoader);
+ } catch (Throwable t) {
+ OpUtils = null;
+ }
+
+ try {
+ OplusChargingStrategy = findClass("com.oplus.systemui.statusbar.pipeline.battery.ui.strategy.OplusChargingColorStrategy", lpparam.classLoader);
+ } catch (Throwable t) {
+ OplusChargingStrategy = null;
+ }
+
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/PulseViewHook.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/PulseViewHook.java
new file mode 100644
index 000000000..31365e2ce
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/PulseViewHook.java
@@ -0,0 +1,319 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getBooleanField;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_AMBIENT;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_COLOR_MODE;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_COLOR_USER;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_CUSTOM_DIMEN;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_CUSTOM_DIV;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_EMPTY_BLOCK_SIZE;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_FILLED_BLOCK_SIZE;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_FUDGE_FACTOR;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_LAVA_SPEED;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_LOCKSCREEN;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_NAVBAR;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_PREFS;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_RENDER_STYLE;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_SMOOTHING;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_SOLID_FUDGE_FACTOR;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_SOLID_UNITS_COUNT;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_SOLID_UNITS_OPACITY;
+import static it.dhd.oxygencustomizer.utils.Constants.SoundPrefs.PULSE_SOLID_UNITS_ROUNDED;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.Looper;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.views.VisualizerView;
+import it.dhd.oxygencustomizer.xposed.views.pulse.ColorController;
+import it.dhd.oxygencustomizer.xposed.views.pulse.FadingBlockRenderer;
+import it.dhd.oxygencustomizer.xposed.views.pulse.PulseControllerImpl;
+import it.dhd.oxygencustomizer.xposed.views.pulse.SolidLineRenderer;
+
+public class PulseViewHook extends XposedMods {
+
+ private static final String TAG = "PulseViewHook ";
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private static Class> CentralSurfacesImpl = null;
+ private FrameLayout mNotificationShadeView = null;
+ private FrameLayout mKeyguardBottomArea = null;
+ private boolean mNavBarPulse, mLockScreenPulse, mAmbientPulse, mPulseEnabled, mPulseSmoothing;
+ private int mPulseStyle, mPulseColorMode, mPulseColor;
+ private int mPulseLavaSpeed, mPulseCustomDimen, mPulseDiv, mPulseFilledBlock, mPulseEmptyBlock, mPulseFudgeFactor;
+ private boolean mPulseSolidRounded;
+ private int mPulseSolidOpacity, mPulseSolidCount, mPulseSolidFudgeFactor;
+ private View mStartButton = null, mEndButton = null;
+ private FrameLayout mAodRootLayout = null;
+ private FrameLayout mNavigationBar = null;
+
+
+ public PulseViewHook(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ // Pulse State
+ mNavBarPulse = Xprefs.getBoolean(PULSE_NAVBAR, false);
+ mLockScreenPulse = Xprefs.getBoolean(PULSE_LOCKSCREEN, false);
+ mAmbientPulse = Xprefs.getBoolean(PULSE_AMBIENT, false);
+
+ // Render Mode
+ mPulseStyle = Integer.parseInt(Xprefs.getString(PULSE_RENDER_STYLE, "1"));
+
+ // Pulse Smoothing
+ mPulseSmoothing = Xprefs.getBoolean(PULSE_SMOOTHING, false);
+
+ // Pulse Color
+ mPulseColorMode = Integer.parseInt(Xprefs.getString(PULSE_COLOR_MODE, "2"));
+ mPulseColor = Xprefs.getInt(PULSE_COLOR_USER, 0x92FFFFFF);
+
+ // Pulse Style
+ mPulseLavaSpeed = Xprefs.getSliderInt(PULSE_LAVA_SPEED, ColorController.LAVA_LAMP_SPEED_DEF);
+
+ // Fading Block
+ mPulseEmptyBlock = Xprefs.getSliderInt(PULSE_EMPTY_BLOCK_SIZE, 1);
+ mPulseCustomDimen = Xprefs.getSliderInt(PULSE_CUSTOM_DIMEN, 14);
+ mPulseDiv = Xprefs.getSliderInt(PULSE_CUSTOM_DIV, 16);
+ mPulseFilledBlock = Xprefs.getSliderInt(PULSE_FILLED_BLOCK_SIZE, 4);
+ mPulseFudgeFactor = Xprefs.getSliderInt(PULSE_FUDGE_FACTOR, 4);
+
+ // Solid Lines
+ mPulseSolidRounded = Xprefs.getBoolean(PULSE_SOLID_UNITS_ROUNDED, false);
+ mPulseSolidOpacity = Xprefs.getSliderInt(PULSE_SOLID_UNITS_OPACITY, 200);
+ mPulseSolidCount = Xprefs.getSliderInt(PULSE_SOLID_UNITS_COUNT, 32);
+ mPulseSolidFudgeFactor = Xprefs.getSliderInt(PULSE_SOLID_FUDGE_FACTOR, 4);
+
+ mPulseEnabled = mNavBarPulse || mLockScreenPulse || mAmbientPulse;
+
+ if (Key.length > 0) {
+ for(String PulsePref : PULSE_PREFS) {
+ if (Key[0].equals(PulsePref)) {
+ if (PulseControllerImpl.hasInstance()) {
+ refreshPulse(PulseControllerImpl.getInstance());
+ }
+ }
+ }
+ }
+
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+ AudioDataProvider.registerInfoCallback(this::onPrimaryMetadataOrStateChanged);
+
+ CentralSurfacesImpl = findClass("com.android.systemui.statusbar.phone.CentralSurfacesImpl", lpparam.classLoader);
+
+ Class> NavigationBarView = findClass("com.android.systemui.navigationbar.NavigationBarView", lpparam.classLoader);
+ /*hookAllMethods(NavigationBarView, "onFinishInflate", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mNavigationBar = (FrameLayout) param.thisObject;
+
+ }
+ });
+ hookAllMethods(CentralSurfacesImpl, "makeStatusBarView", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mNotificationShadeView = (FrameLayout) callMethod(param.thisObject, "getNotificationShadeWindowView"); //callMethod(param.thisObject, "getNotificationShadeWindowView");//getObjectField(param.thisObject, "mNotificationShadeWindowView");
+ //mNotificationShadeView.addView(new VisualizerView(mContext));
+ }
+ });*/
+
+ Class> NotificationShadeWindowView = findClass("com.android.systemui.shade.NotificationShadeWindowView", lpparam.classLoader);
+ hookAllConstructors(NotificationShadeWindowView, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mNotificationShadeView = (FrameLayout) param.thisObject;
+ placePulseView();
+ }
+ });
+
+ hookAllMethods(CentralSurfacesImpl, "getNotificationShadeWindowView", new XC_MethodHook() {
+ protected void afterHookedMethod(XC_MethodHook.MethodHookParam methodHookParam) throws Throwable {
+ mNavigationBar = (FrameLayout) callMethod(methodHookParam.thisObject, "getNavigationBarView", new Object[0]);
+ if (PulseControllerImpl.hasInstance()) {
+ PulseControllerImpl.getInstance().setNavbar(mNavigationBar);
+ }
+ }
+ });
+
+ Class> AodRootLayout = findClass("com.oplus.systemui.aod.aodclock.off.AodRootLayout", lpparam.classLoader);
+ hookAllConstructors(AodRootLayout, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mAodRootLayout = (FrameLayout) param.thisObject;
+ if (PulseControllerImpl.hasInstance()) {
+ PulseControllerImpl.getInstance().setAodRootLayout(mAodRootLayout);
+ }
+ }
+ });
+
+ Class> KeyguardBottomAreaView = findClass("com.android.systemui.statusbar.phone.KeyguardBottomAreaView", lpparam.classLoader);
+ hookAllMethods(KeyguardBottomAreaView, "onFinishInflate", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mKeyguardBottomArea = (FrameLayout) param.thisObject;
+ try {
+ mStartButton = mKeyguardBottomArea.findViewById(mContext.getResources().getIdentifier("start_button", "id", Constants.Packages.SYSTEM_UI));
+ mEndButton = mKeyguardBottomArea.findViewById(mContext.getResources().getIdentifier("end_button", "id", Constants.Packages.SYSTEM_UI));
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ updateLockscreenIcons();
+ }
+ });
+
+
+ hookAllConstructors(CentralSurfacesImpl, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+
+ }
+ });
+
+ hookAllMethods(CentralSurfacesImpl, "keyguardGoingAway", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (PulseControllerImpl.hasInstance()) {
+ ///log(TAG + "keyguardGoingAway");
+ PulseControllerImpl.getInstance().notifyKeyguardGoingAway();
+ }
+ }
+ });
+
+ // Stole Dozing State
+ hookAllMethods(CentralSurfacesImpl, "updateDozingState", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ //log(TAG + "updateDozingState, dozing: " + getBooleanField(param.thisObject, "mDozing"));
+ if (PulseControllerImpl.hasInstance()) {
+ PulseControllerImpl.getInstance().setDozing(getBooleanField(param.thisObject, "mDozing"));
+ }
+ }
+ });
+
+ // Stole Keyguard is showing
+ Class> KayguardUpdateMonitor = findClass("com.android.keyguard.KeyguardUpdateMonitor", lpparam.classLoader);
+ hookAllMethods(KayguardUpdateMonitor, "setKeyguardShowing", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (PulseControllerImpl.hasInstance()) {
+ //log(TAG + "Keyguard is showing: " + param.args[0]);
+ PulseControllerImpl.getInstance().setKeyguardShowing((boolean) param.args[0]);
+ if (mLockScreenPulse) new Handler(Looper.getMainLooper()).postDelayed(() -> updateLockscreenIcons(), 200);
+ }
+ }
+ });
+
+ // Stole Screen Pinning
+ hookAllMethods(NavigationBarView, "setInScreenPinning", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (PulseControllerImpl.hasInstance()) {
+ //log(TAG + "Screen pinning: " + (boolean)param.args[0]);
+ PulseControllerImpl.getInstance().setScreenPinning((boolean) param.args[0]);
+ }
+ }
+ });
+
+ }
+
+ private void updateLockscreenIcons() {
+ if (!mPulseEnabled || !mLockScreenPulse) return;
+
+ if (mStartButton != null) {
+ mStartButton.bringToFront();
+ mStartButton.requestLayout();
+ }
+ if (mEndButton != null) {
+ mEndButton.bringToFront();
+ mEndButton.requestLayout();
+ }
+ mKeyguardBottomArea.requestLayout();
+ }
+ private void onPrimaryMetadataOrStateChanged(int state) {
+ if (mPulseEnabled && PulseControllerImpl.hasInstance()) {
+ PulseControllerImpl.getInstance().onPrimaryMetadataOrStateChanged(state);
+ }
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+
+ private void placePulseView() {
+ log(TAG + "Placing PulseView");
+ VisualizerView visualizerView;
+ if (VisualizerView.hasInstance()) {
+ visualizerView = VisualizerView.getInstance();
+ } else {
+ visualizerView = new VisualizerView(mContext);
+ }
+ try {
+ ((ViewGroup) visualizerView.getParent()).removeView(visualizerView);
+ } catch (Throwable ignored) {
+ }
+ mNotificationShadeView.addView(visualizerView);
+ refreshPulse(PulseControllerImpl.getInstance(mContext));
+ }
+
+ private void refreshPulse(PulseControllerImpl pulseController) {
+ if (pulseController == null) return;
+ pulseController.setPulseEnabled(mPulseEnabled);
+ pulseController.setLockscreenPulseEnabled(mLockScreenPulse);
+ pulseController.setNavbarPulseEnabled(mNavBarPulse);
+ pulseController.setAmbientPulseEnabled(mAmbientPulse);
+ pulseController.setPulseRenderStyle(mPulseStyle);
+ pulseController.setAodRootLayout(mAodRootLayout);
+ pulseController.setNavbar(mNavigationBar);
+ if (SolidLineRenderer.hasInstance()) {
+ refreshPulseSolidLineRenderer(SolidLineRenderer.getInstance());
+ }
+ if (ColorController.hasInstance()) {
+ refreshPulseColorController(ColorController.getInstance());
+ }
+ if (FadingBlockRenderer.hasInstance()) {
+ refreshPulseFadingBlockRenderer(FadingBlockRenderer.getInstance());
+ }
+ }
+
+ private void refreshPulseSolidLineRenderer(SolidLineRenderer solidLineRenderer) {
+ if (solidLineRenderer == null) return;
+
+ solidLineRenderer.updateSettings(mPulseSolidFudgeFactor, mPulseSmoothing, mPulseSolidRounded, mPulseSolidCount, mPulseSolidOpacity);
+ }
+
+ private void refreshPulseFadingBlockRenderer(FadingBlockRenderer fadingBlockRenderer) {
+ if (fadingBlockRenderer == null) return;
+
+ fadingBlockRenderer.updateSettings(mPulseEmptyBlock, mPulseCustomDimen, mPulseDiv, mPulseFudgeFactor, mPulseFilledBlock);
+ fadingBlockRenderer.updateSmoothingEnabled(mPulseSmoothing);
+ }
+
+ private void refreshPulseColorController(ColorController colorController) {
+ if (colorController == null) return;
+ colorController.setColorType(mPulseColorMode);
+ colorController.setCustomColor(mPulseColor);
+ colorController.setLavaLampSpeed(mPulseLavaSpeed);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/SettingsLibUtilsProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/SettingsLibUtilsProvider.java
new file mode 100644
index 000000000..efcc8f4ad
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/SettingsLibUtilsProvider.java
@@ -0,0 +1,109 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static de.robv.android.xposed.XposedHelpers.callStaticMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getStaticIntField;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
+
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XPLauncher;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class SettingsLibUtilsProvider extends XposedMods {
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private static Class> UtilsClass = null;
+ private static Class> AbsSettingsValueProxy = null;
+ private static Class> BrightnessUtils = null;
+ private static Class> CoUIColors = null;
+
+ public static ColorStateList getColorAttr(int resID, Context context) {
+ if (UtilsClass == null) return null;
+
+ return (ColorStateList) callStaticMethod(UtilsClass, "getColorAttr", context, resID);
+ }
+
+ public static int getColorStateListDefaultColor(Context context, int resID) {
+ if (UtilsClass == null) return 0;
+
+ return (int) callStaticMethod(UtilsClass, "getColorStateListDefaultColor", context, resID);
+ }
+
+ public static int getColorAttrDefaultColor(Context context, int resID) {
+ if (UtilsClass == null) return 0;
+
+ try {
+ return (int) callStaticMethod(UtilsClass, "getColorAttrDefaultColor", context, resID, 0);
+ } catch (Throwable ignored) { //13 QPR1
+ return (int) callStaticMethod(UtilsClass, "getColorAttrDefaultColor", resID, context);
+ }
+ }
+
+ public static int getColorAttrDefaultColor(int resID, Context context) {
+ if (UtilsClass == null) return 0;
+
+ try {
+ return (int) callStaticMethod(UtilsClass, "getColorAttrDefaultColor", resID, context);
+ } catch (Throwable throwable) {
+ try {
+ return (int) callStaticMethod(UtilsClass, "getColorAttrDefaultColor", context, resID);
+ } catch (Throwable throwable1) {
+ return (int) callStaticMethod(UtilsClass, "getColorAttrDefaultColor", context, resID, 0);
+ }
+ }
+ }
+
+ public static int getSecureIntValue(Context context, String str, int i) {
+ if (AbsSettingsValueProxy == null) return i;
+
+ return (int) callStaticMethod(AbsSettingsValueProxy, "getSecureIntValue", context, str, i);
+ }
+
+ public static float convertGammaToLinearFloat(int i, float f, float f2) {
+ if (BrightnessUtils == null) return 0f;
+
+ return (float) callStaticMethod(BrightnessUtils, "convertGammaToLinearFloat", i, f, f2);
+ }
+
+ public static int getGammaMax() {
+ if (BrightnessUtils == null) return 0;
+
+ return getStaticIntField(BrightnessUtils, "GAMMA_SPACE_MAX");
+ }
+
+ public static int getThemeAttr(Context context, int attr) {
+ return getThemeAttr(context, attr, 0);
+ }
+
+ public static int getThemeAttr(Context context, int attr, int defaultValue) {
+ if (UtilsClass == null) return 0;
+ TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
+ int theme = ta.getResourceId(0, defaultValue);
+ ta.recycle();
+ return theme;
+ }
+
+ public SettingsLibUtilsProvider(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName) && !XPLauncher.isChildProcess;
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ UtilsClass = findClass("com.android.settingslib.Utils", lpparam.classLoader);
+ AbsSettingsValueProxy = findClass("com.oplusos.systemui.common.settingsvalue.AbsSettingsValueProxy", lpparam.classLoader);
+ BrightnessUtils = findClass("com.android.settingslib.display.BrightnessUtils", lpparam.classLoader);
+ CoUIColors = findClass("com.coui.appcompat.contextutil.COUIContextUtil", lpparam.classLoader);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/VolumePanel.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/VolumePanel.java
new file mode 100644
index 000000000..8564af993
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/VolumePanel.java
@@ -0,0 +1,257 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getBooleanField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static de.robv.android.xposed.XposedHelpers.setObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils.getPrimaryColor;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.graphics.drawable.LayerDrawable;
+import android.view.View;
+import android.view.Gravity;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.ImageView;
+
+import androidx.core.graphics.ColorUtils;
+
+import java.util.List;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.XC_MethodReplacement;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class VolumePanel extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private int mTimeOut;
+ private int mDesiredTimeout;
+ private boolean mDisableVolumeWarning;
+ private boolean customizeVolumeProgress, customizeVolumeIcon;
+ private boolean volumeProgressPrimary, volumeIconPrimary;
+ private int volumeProgressColor, volumeIconColor;
+ private Object OVDI;
+ private boolean sliderCustomizable = false;
+
+ public VolumePanel(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ mDesiredTimeout = Xprefs.getSliderInt("volume_dialog_timeout", 3);
+ mTimeOut = mDesiredTimeout * 1000;
+ mDisableVolumeWarning = Xprefs.getBoolean("disable_volume_warning", false);
+ customizeVolumeProgress = Xprefs.getBoolean("volume_panel_seekbar_color_enabled", false);
+ customizeVolumeIcon = Xprefs.getBoolean("volume_panel_icon_color_enabled", false);
+ volumeProgressPrimary = Xprefs.getBoolean("volume_panel_seekbar_link_primary", false);
+ volumeIconPrimary = Xprefs.getBoolean("volume_panel_icon_accent", false);
+ volumeProgressColor = Xprefs.getInt("volume_panel_seekbar_color", 0);
+ volumeIconColor = Xprefs.getInt("volume_panel_icon_color", 0);
+
+ if (Key.length > 0) {
+ if (Key[0].equals("volume_panel_seekbar_color_enabled") ||
+ Key[0].equals("volume_panel_seekbar_link_primary") ||
+ Key[0].equals("volume_panel_seekbar_color") ||
+ Key[0].equals("volume_panel_icon_color_enabled") ||
+ Key[0].equals("volume_panel_icon_accent") ||
+ Key[0].equals("volume_panel_icon_color")) {
+ updateVolumePanel();
+ }
+ }
+
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!listenPackage.equals(lpparam.packageName)) return;
+
+ try {
+ Class> OplusVolumeSeekBar = findClass("com.oplus.systemui.volume.OplusVolumeSeekBar", lpparam.classLoader);
+ sliderCustomizable = true;
+ } catch (Throwable ignored) {
+ sliderCustomizable = false;
+ }
+
+ Class> OplusVolumeDialogImpl = findClass("com.oplus.systemui.volume.OplusVolumeDialogImpl", lpparam.classLoader);
+ hookAllMethods(OplusVolumeDialogImpl, "computeTimeoutH", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+
+ if (mDesiredTimeout == 3) return;
+
+ if (getBooleanField(param.thisObject, "mHovering")) {
+ log("mTimeOut: 16000");
+ param.setResult((int) callMethod(getObjectField(param.thisObject, "mAccessibilityMgr"), "getRecommendedTimeoutMillis", 16000, 4));
+ }
+ synchronized (getObjectField(param.thisObject, "mSafetyWarningLock")) {
+ if (getBooleanField(param.thisObject, "mExpanded")) {
+ log("mTimeOut: mExpanded 5000");
+ param.setResult((int) callMethod(getObjectField(param.thisObject, "mAccessibilityMgr"), "getRecommendedTimeoutMillis", 5000, 4));
+ } else {
+ log("mTimeOut: " + mTimeOut);
+ param.setResult(mTimeOut);
+ }
+ }
+ }
+ });
+
+ Class> VolumeDialogImpl = findClass("com.android.systemui.volume.VolumeDialogImpl", lpparam.classLoader);
+ hookAllMethods(VolumeDialogImpl, "showSafetyWarningH", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (mDisableVolumeWarning) {
+ param.setResult(null);
+ }
+ }
+ });
+
+ Class> OplusVolumeDialog = findClass("com.oplus.systemui.volume.OplusVolumeDialogImpl", lpparam.classLoader);
+ hookAllConstructors(OplusVolumeDialogImpl, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ OVDI = param.thisObject;
+ }
+ });
+
+ hookAllMethods(OplusVolumeDialog, "initRow", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (!sliderCustomizable) return;
+
+ Object VolumeRow = param.args[0];
+ Object slider = getObjectField(VolumeRow, "slider");
+ if (customizeVolumeProgress) {
+ if (volumeProgressPrimary)
+ callMethod(slider, "setProgressColor", ColorStateList.valueOf(getPrimaryColor(mContext)));
+ else
+ callMethod(slider, "setProgressColor", ColorStateList.valueOf(volumeProgressColor));
+ }
+
+ if (customizeVolumeIcon) {
+ ImageView icon = (ImageView) getObjectField(VolumeRow, "icon");
+ int colorToApply = -1;
+ if (volumeIconPrimary)
+ colorToApply = getPrimaryColor(mContext);
+ else
+ colorToApply = volumeIconColor;
+
+ if (colorToApply != -1) {
+ int fadeFilter = ColorUtils.blendARGB(Color.TRANSPARENT, colorToApply, 1.0f);
+ icon.setColorFilter(fadeFilter, PorterDuff.Mode.SRC_ATOP);
+ }
+ callMethod(icon, "setSupportImageTintList", ColorStateList.valueOf(colorToApply));
+ callMethod(slider, "setIcon", icon);
+ }
+
+ }
+ });
+
+ final XC_MethodHook volumeIconHook = new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ Object VolumeRow = param.args[0];
+ Object slider = getObjectField(VolumeRow, "slider");
+
+ if (customizeVolumeIcon) {
+ ImageView icon = (ImageView) getObjectField(VolumeRow, "icon");
+ int colorToApply = -1;
+ if (volumeIconPrimary)
+ colorToApply = getPrimaryColor(mContext);
+ else
+ colorToApply = volumeIconColor;
+
+ if (colorToApply != -1) {
+ int fadeFilter = ColorUtils.blendARGB(Color.TRANSPARENT, colorToApply, 1.0f);
+ icon.setColorFilter(fadeFilter, PorterDuff.Mode.SRC_ATOP);
+ }
+ callMethod(icon, "setSupportImageTintList", ColorStateList.valueOf(colorToApply));
+ callMethod(slider, "setIcon", icon);
+ }
+ }
+ };
+
+ Class> VolumeSeekBarChangeListener = findClass("com.oplus.systemui.volume.OplusVolumeDialogImpl$VolumeSeekBarChangeListener", lpparam.classLoader);
+ hookAllConstructors(VolumeSeekBarChangeListener, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ Object VolumeRow = getObjectField(param.thisObject, "mRow");
+
+ if (customizeVolumeIcon) {
+ ImageView icon = (ImageView) getObjectField(VolumeRow, "icon");
+ if (icon == null) return;
+ int colorToApply = -1;
+ if (volumeIconPrimary)
+ colorToApply = getPrimaryColor(mContext);
+ else
+ colorToApply = volumeIconColor;
+
+ if (colorToApply != -1) {
+ int fadeFilter = ColorUtils.blendARGB(Color.TRANSPARENT, colorToApply, 1.0f);
+ icon.setColorFilter(fadeFilter, PorterDuff.Mode.SRC_ATOP);
+ }
+ callMethod(icon, "setSupportImageTintList", ColorStateList.valueOf(colorToApply));
+ } }
+ });
+
+ hookAllMethods(OplusVolumeDialog, "updateVolumeRowH", volumeIconHook);
+
+ hookAllMethods(OplusVolumeDialog, "updateVolumeRowSliderH", volumeIconHook);
+ hookAllMethods(OplusVolumeDialog, "updateVolumeRowTintH", volumeIconHook);
+ hookAllMethods(OplusVolumeDialog, "refreshVisibleRow", volumeIconHook);
+
+
+ }
+
+ private void updateVolumePanel() {
+ if (OVDI == null) return;
+
+ if (!sliderCustomizable) return;
+
+ List mRows = (List) getObjectField(OVDI, "mRows");
+ for (Object VolumeRow : mRows) {
+ Object slider = getObjectField(VolumeRow, "slider");
+ if (customizeVolumeProgress) {
+ if (volumeProgressPrimary)
+ callMethod(slider, "setProgressColor", ColorStateList.valueOf(getPrimaryColor(mContext)));
+ else
+ callMethod(slider, "setProgressColor", ColorStateList.valueOf(volumeProgressColor));
+ }
+
+ if (customizeVolumeIcon) {
+ ImageView icon = (ImageView) getObjectField(VolumeRow, "icon");
+ int colorToApply = -1;
+ if (volumeIconPrimary)
+ colorToApply = getPrimaryColor(mContext);
+ else
+ colorToApply = volumeIconColor;
+
+ if (colorToApply != -1) {
+ int fadeFilter = ColorUtils.blendARGB(Color.TRANSPARENT, colorToApply, 1.0f);
+ icon.setColorFilter(fadeFilter, PorterDuff.Mode.SRC_ATOP);
+ }
+ callMethod(slider, "setIcon", icon);
+ }
+ }
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/aod/AOD.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/aod/AOD.java
new file mode 100644
index 000000000..5772fa758
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/aod/AOD.java
@@ -0,0 +1,291 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.aod;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.LOCKSCREEN_CLOCK_LAYOUT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_BOTTOM_MARGIN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_FONT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_USER;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_USER_IMAGE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_USER_VALUE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_LINE_HEIGHT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_TEXT_SCALING;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_TOP_MARGIN;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils.getPrimaryColor;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.loadLottieAnimationView;
+
+import android.annotation.SuppressLint;
+import android.app.ActivityManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.res.ColorStateList;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Typeface;
+import android.media.AudioManager;
+import android.os.Build;
+import android.os.Environment;
+import android.os.UserManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import java.io.File;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.utils.ViewHelper;
+
+public class AOD extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private static final String TAG = "Oxygen Customizer: AOD ";
+ private RelativeLayout mRootLayout = null;
+ private Context appContext;
+ Class> LottieAn = null;
+ public static final String OC_AOD_CLOCK_TAG = "oxygencustomizer_aod_clock";
+
+ public AOD(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+ initResources(mContext);
+
+ LottieAn = findClass("com.airbnb.lottie.LottieAnimationView", lpparam.classLoader);
+
+ /*Class> OplusAodCurvedDisplayView = findClass("com.oplus.systemui.aod.surface.OplusAodCurvedDisplayView", lpparam.classLoader);
+ hookAllMethods(OplusAodCurvedDisplayView, "recordColor", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ log(TAG + "OpusAodCurvedDisplayView recordColor");
+ log(TAG + "str " + param.args[0].toString());
+ }
+ });
+ hookAllMethods(OplusAodCurvedDisplayView, "onDraw", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ log("OpusAodCurvedDisplayView onDraw");
+ Paint[] mPaintList = (Paint[]) getObjectField(param.thisObject, "mPaintList");
+ for (Paint paint : mPaintList) {
+ log(TAG + "Paint: " + paint.toString() + " color: " + paint.getColor());
+ }
+ }
+ });
+ //mPaintList*/
+
+ Class> AodClockLayout = findClass("com.oplus.systemui.aod.aodclock.off.AodClockLayout", lpparam.classLoader);
+ hookAllConstructors(AodClockLayout, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mRootLayout = (RelativeLayout) param.thisObject;
+
+ Object mAodViewFromApk = getObjectField(param.thisObject, "mAodViewFromApk");
+ callMethod(mAodViewFromApk, "setVisibility", View.GONE);
+
+ Object mClockLayout = getObjectField(param.thisObject, "mClockLayout");
+ callMethod(mClockLayout, "setVisibility", View.GONE);
+
+
+ Object mDateLayout = getObjectField(param.thisObject, "mDateLayout");
+ callMethod(mDateLayout, "setVisibility", View.GONE);
+
+ Object mAodGlobalThemeRootLayout = getObjectField(param.thisObject, "mAodGlobalThemeRootLayout");
+ callMethod(mAodGlobalThemeRootLayout, "setVisibility", View.GONE);
+
+ updateClockView();
+ }
+ });
+
+ findAndHookMethod(AodClockLayout, "updateLayout", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ log(TAG + " updateLayout after");
+ Object mAodViewFromApk = getObjectField(param.thisObject, "mAodViewFromApk");
+ callMethod(mAodViewFromApk, "setVisibility", View.GONE);
+
+ Object mClockLayout = getObjectField(param.thisObject, "mClockLayout");
+ callMethod(mClockLayout, "setVisibility", View.GONE);
+
+
+ Object mDateLayout = getObjectField(param.thisObject, "mDateLayout");
+ callMethod(mDateLayout, "setVisibility", View.GONE);
+
+ Object mAodGlobalThemeRootLayout = getObjectField(param.thisObject, "mAodGlobalThemeRootLayout");
+ callMethod(mAodGlobalThemeRootLayout, "setVisibility", View.GONE);
+ }
+ });
+
+ hookAllMethods(AodClockLayout, "updateRamlessArea", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ Object mAodViewFromApk = getObjectField(param.thisObject, "mAodViewFromApk");
+ callMethod(mAodViewFromApk, "setVisibility", View.GONE);
+
+ Object mClockLayout = getObjectField(param.thisObject, "mClockLayout");
+ callMethod(mClockLayout, "setVisibility", View.GONE);
+
+
+ Object mDateLayout = getObjectField(param.thisObject, "mDateLayout");
+ callMethod(mDateLayout, "setVisibility", View.GONE);
+
+ Object mAodGlobalThemeRootLayout = getObjectField(param.thisObject, "mAodGlobalThemeRootLayout");
+ callMethod(mAodGlobalThemeRootLayout, "setVisibility", View.GONE);
+ }
+ });
+
+ hookAllMethods(AodClockLayout, "setVisibleWithSetupAnimate", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ Object mAodViewFromApk = getObjectField(param.thisObject, "mAodViewFromApk");
+ callMethod(mAodViewFromApk, "setVisibility", View.GONE);
+
+ Object mClockLayout = getObjectField(param.thisObject, "mClockLayout");
+ callMethod(mClockLayout, "setVisibility", View.GONE);
+
+
+ Object mDateLayout = getObjectField(param.thisObject, "mDateLayout");
+ callMethod(mDateLayout, "setVisibility", View.GONE);
+
+ Object mAodGlobalThemeRootLayout = getObjectField(param.thisObject, "mAodGlobalThemeRootLayout");
+ callMethod(mAodGlobalThemeRootLayout, "setVisibility", View.GONE);
+
+ }
+ });
+
+ }
+
+ private void updateClockView() {
+
+ if (mRootLayout == null) return;
+
+ View clockView = getClockView();
+
+ boolean isClockAdded = mRootLayout.findViewWithTag(OC_AOD_CLOCK_TAG) != null;
+
+ // Remove existing clock view
+ if (isClockAdded) {
+ mRootLayout.removeView(mRootLayout.findViewWithTag(OC_AOD_CLOCK_TAG));
+ }
+
+ if (clockView != null) {
+ clockView.setTag(OC_AOD_CLOCK_TAG);
+
+ int idx = 0;
+ LinearLayout dummyLayout = null;
+
+
+ if (clockView.getParent() != null) {
+ ((ViewGroup) clockView.getParent()).removeView(clockView);
+ }
+
+// TextUtil.convertTextViewsToTitleCase((ViewGroup) clockView);
+
+ mRootLayout.addView(clockView, idx);
+ modifyClockView(clockView);
+ }
+ }
+
+ private void modifyClockView(View clockView) {
+ int topMargin = Xprefs.getSliderInt(LOCKSCREEN_CLOCK_TOP_MARGIN, 100);
+ int bottomMargin = Xprefs.getSliderInt(LOCKSCREEN_CLOCK_BOTTOM_MARGIN, 40);
+ float clockScale = Xprefs.getSliderFloat(LOCKSCREEN_CLOCK_TEXT_SCALING, 1.0f);
+ String customFont = Environment.getExternalStorageDirectory() + "/.oxygen_customizer/aod_clock_font.ttf";
+ int lineHeight = Xprefs.getSliderInt(LOCKSCREEN_CLOCK_LINE_HEIGHT, 0);
+ boolean customFontEnabled = Xprefs.getBoolean(LOCKSCREEN_CLOCK_CUSTOM_FONT, false);
+ boolean useCustomName = Xprefs.getBoolean(LOCKSCREEN_CLOCK_CUSTOM_USER, false);
+ String customName = Xprefs.getString(LOCKSCREEN_CLOCK_CUSTOM_USER_VALUE, "TEST");
+ boolean useCustomImage = Xprefs.getBoolean(LOCKSCREEN_CLOCK_CUSTOM_USER_IMAGE, false);
+
+ Typeface typeface = null;
+ if (customFontEnabled && (new File(customFont).exists())) {
+ typeface = Typeface.createFromFile(new File(customFont));
+ }
+
+ ViewHelper.setMargins(clockView, mContext, 0, topMargin, 0, bottomMargin);
+
+ if (true) {
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent1", getPrimaryColor(mContext));
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent2", Color.WHITE);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent3", Color.WHITE);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "text1", Color.WHITE);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "text2", Color.WHITE);
+ }
+
+ if (typeface != null) {
+ ViewHelper.applyFontRecursively((ViewGroup) clockView, typeface);
+ }
+
+ ViewHelper.applyTextMarginRecursively((ViewGroup) clockView, lineHeight);
+
+ if (clockScale != 1.0f) {
+ ViewHelper.applyTextScalingRecursively((ViewGroup) clockView, clockScale);
+ }
+ }
+
+ @SuppressLint("DiscouragedApi")
+ private View getClockView() {
+ LayoutInflater inflater = LayoutInflater.from(appContext);
+
+ View v = inflater.inflate(
+ appContext
+ .getResources()
+ .getIdentifier(
+ LOCKSCREEN_CLOCK_LAYOUT + 4,
+ "layout",
+ BuildConfig.APPLICATION_ID
+ ),
+ null
+ );
+
+ loadLottieAnimationView(
+ appContext,
+ LottieAn,
+ v,
+ 4
+ );
+
+ return v;
+
+ }
+
+ private void initResources(Context context) {
+ try {
+ appContext = context.createPackageContext(
+ BuildConfig.APPLICATION_ID,
+ Context.CONTEXT_IGNORE_SECURITY
+ );
+ } catch (PackageManager.NameNotFoundException ignored) {
+ }
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/lockscreen/Lockscreen.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/lockscreen/Lockscreen.java
new file mode 100644
index 000000000..e2132a035
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/lockscreen/Lockscreen.java
@@ -0,0 +1,190 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.lockscreen;
+
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.callStaticMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static de.robv.android.xposed.XposedHelpers.setObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.Lockscreen.LOCKSCREEN_CUSTOM_FINGERPRINT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.Lockscreen.LOCKSCREEN_FINGERPRINT_SCALING;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.Lockscreen.LOCKSCREEN_FINGERPRINT_STYLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.Lockscreen.LOCKSCREEN_HIDE_FINGERPRINT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.Lockscreen.LOCKSCREEN_REMOVE_SOS;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.utils.DrawableConverter.scaleDrawable;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.graphics.ImageDecoder;
+import android.graphics.drawable.AnimatedImageDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Environment;
+
+import androidx.core.content.res.ResourcesCompat;
+
+import java.io.File;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.ResourceManager;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class Lockscreen extends XposedMods {
+
+ private final static String listenPackage = Constants.Packages.SYSTEM_UI;
+ private final String TAG = "Oxygen Customizer - Lockscreen: ";
+ private Class> KeyguardHelper = null;
+ private Object OSF = null;
+ private boolean removeSOS;
+ private boolean hideFingerprint = false, customFingerprint = false;
+ private int fingerprintStyle = 0;
+ private Object mFpIcon;
+ private float mFpScale = 1.0f;
+
+ public Lockscreen(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+
+ removeSOS = Xprefs.getBoolean(LOCKSCREEN_REMOVE_SOS, false);
+ hideFingerprint = Xprefs.getBoolean(LOCKSCREEN_HIDE_FINGERPRINT, false);
+ customFingerprint = Xprefs.getBoolean(LOCKSCREEN_CUSTOM_FINGERPRINT, false);
+ fingerprintStyle = Integer.parseInt(Xprefs.getString(LOCKSCREEN_FINGERPRINT_STYLE, "0"));
+ mFpScale = Xprefs.getSliderFloat(LOCKSCREEN_FINGERPRINT_SCALING, 1.0f);
+ }
+
+ private boolean isMethodSecure() {
+ log(TAG + "isMethodSecure" + " != null" + (KeyguardHelper != null));
+ if (KeyguardHelper != null) {
+ return (boolean) callStaticMethod(KeyguardHelper, "hasSecurityKeyguard");
+ }
+ return false;
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+
+ KeyguardHelper = findClass("com.oplus.systemui.common.helper.KeyguardHelper", lpparam.classLoader);
+
+ Class> OplusEmergencyButtonExImpl = findClass("com.oplus.keyguard.OplusEmergencyButtonExImpl", lpparam.classLoader);
+ try {
+ findAndHookMethod(OplusEmergencyButtonExImpl, "disableShowEmergencyButton", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (removeSOS) param.setResult(true);
+ }
+ });
+ } catch (Throwable t) {
+ log(TAG + "disableShowEmergencyButton not found");
+ }
+
+ Class> OnScreenFingerprint = findClass("com.oplus.systemui.biometrics.finger.udfps.OnScreenFingerprintUiMach", lpparam.classLoader);
+ hookAllMethods(OnScreenFingerprint, "initFpIconWin", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ OSF = param.thisObject;
+ }
+ });
+ try {
+ hookAllMethods(OnScreenFingerprint, "loadAnimDrawables", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (hideFingerprint || customFingerprint) updateFingerprintIcon(param, false);
+ }
+ });
+ } catch (Throwable t) {
+ log(TAG + "onAttachedToWindow not found");
+ }
+
+ try {
+ hookAllMethods(OnScreenFingerprint, "startFadeInAnimation", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (hideFingerprint || customFingerprint) updateFingerprintIcon(param, true);
+ }
+ });
+ } catch (Throwable t) {
+ log(TAG + "startFadeInAnimation not found");
+ }
+
+ try {
+ hookAllMethods(OnScreenFingerprint, "updateFpIconColor", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (!customFingerprint || hideFingerprint) return;
+ Drawable d = (Drawable) getObjectField(param.thisObject, "mImMobileDrawable");
+ if (d != null) d.clearColorFilter();
+ }
+ });
+ } catch (Throwable t) {
+ log(TAG + "updateFpIconColor not found");
+ }
+
+ try {
+ hookAllMethods(OnScreenFingerprint, "startFadeOutAnimation", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (hideFingerprint || customFingerprint) param.setResult(null);
+ }
+ });
+ } catch (Throwable t) {
+ log(TAG + "startFadeInAnimation not found");
+ }
+
+ }
+
+ private void updateFingerprintIcon(XC_MethodHook.MethodHookParam param, boolean isStartMethod) {
+ if (mFpIcon == null) mFpIcon = getObjectField(param.thisObject, "mFpIcon");
+
+ log(TAG + "updateFingerprintIcon");
+ AtomicReference d = new AtomicReference<>(null);
+ if (customFingerprint) {
+ if (fingerprintStyle != -1) {
+ @SuppressLint("DiscouragedApi") int resId = ResourceManager.modRes.getIdentifier("fingerprint_" + fingerprintStyle,"drawable", BuildConfig.APPLICATION_ID);
+ d.set(ResourcesCompat.getDrawable(ResourceManager.modRes,
+ resId,
+ mContext.getTheme()));
+ } else {
+ try {
+ ImageDecoder.Source source = ImageDecoder.createSource(new File(Environment.getExternalStorageDirectory() + "/.oxygen_customizer/lockscreen_fp_icon.png"));
+ d.set(ImageDecoder.decodeDrawable(source));
+ if (d.get() instanceof AnimatedImageDrawable) {
+ ((AnimatedImageDrawable) d.get()).setRepeatCount(AnimatedImageDrawable.REPEAT_INFINITE);
+ ((AnimatedImageDrawable) d.get()).start();
+ }
+ } catch (Throwable ignored) {}
+ }
+ }
+ if (d.get() == null) {
+ setObjectField(param.thisObject, "mFadeInAnimDrawable", null);
+ setObjectField(param.thisObject, "mFadeOutAnimDrawable", null);
+ }
+ Drawable scaled = (Drawable) scaleDrawable(mContext, d.get(), mFpScale);
+ setObjectField(param.thisObject, "mImMobileDrawable", scaled);
+ if (mFpIcon != null) {
+ callMethod(mFpIcon, "setImageDrawable", d.get() == null ? null : scaled);
+ }
+ if (hideFingerprint && isStartMethod) {
+ param.setResult(null);
+ }
+ //if (!isStartMethod) callMethod(param.thisObject, "updateFpIconColor");
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/lockscreen/LockscreenClock.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/lockscreen/LockscreenClock.java
new file mode 100644
index 000000000..ffffa9724
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/lockscreen/LockscreenClock.java
@@ -0,0 +1,694 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.lockscreen;
+
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getBooleanField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.LOCKSCREEN_CLOCK_LAYOUT;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_CUSTOM_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_CUSTOM_COLOR_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_HUMIDITY;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_IMAGE_SIZE;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_PREFS;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_SHOW_CONDITION;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_SHOW_LOCATION;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_TEXT_SIZE;
+import static it.dhd.oxygencustomizer.utils.Constants.LockscreenWeather.LOCKSCREEN_WEATHER_WIND;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_BOTTOM_MARGIN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT1;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT2;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT3;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_COLOR_CODE_TEXT1;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_COLOR_CODE_TEXT2;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_COLOR_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_FONT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_USER;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_USER_IMAGE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_CUSTOM_USER_VALUE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_LINE_HEIGHT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_STYLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_TEXT_SCALING;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_TOP_MARGIN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_STOCK_CLOCK_RED_ONE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_STOCK_CLOCK_RED_ONE_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_PREFS;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils.getPrimaryColor;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.loadLottieAnimationView;
+
+import android.annotation.SuppressLint;
+import android.app.ActivityManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.res.ColorStateList;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.ImageDecoder;
+import android.graphics.Typeface;
+import android.graphics.drawable.AnimatedImageDrawable;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.media.AudioManager;
+import android.os.BatteryManager;
+import android.os.Build;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.format.DateFormat;
+import android.text.style.ForegroundColorSpan;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.GridLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+import androidx.core.content.res.ResourcesCompat;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.util.Calendar;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.weather.WeatherUpdateService;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.utils.ArcProgressWidget;
+import it.dhd.oxygencustomizer.xposed.utils.ViewHelper;
+import it.dhd.oxygencustomizer.xposed.views.CurrentWeatherView;
+
+public class LockscreenClock extends XposedMods {
+
+ private static final String TAG = "Oxygen Customizer - " + LockscreenClock.class.getSimpleName() + ": ";
+ private final static String listenPackage = Constants.Packages.SYSTEM_UI;
+ public static final String OC_LOCKSCREEN_CLOCK_TAG = "oxygencustomizer_lockscreen_clock";
+ public static final String OC_DEPTH_WALLPAPER_TAG = "oxygencustomizer_depth_wallpaper";
+
+ private boolean customLockscreenClock = false;
+ private ViewGroup mClockViewContainer = null;
+ private ViewGroup mStatusViewContainer = null;
+ private RelativeLayout mClockView = null;
+ private View mMediaHostContainer = null;
+ private int lockscreenClockStyle = 1;
+ private int mStockClockRed, mStockClockRedColor;
+ private static Object mStockClock;
+ private UserManager mUserManager;
+ private AudioManager mAudioManager;
+ private ActivityManager mActivityManager;
+ private Context appContext;
+ private TextView mBatteryStatusView;
+ private TextView mBatteryLevelView;
+ private TextView mVolumeLevelView;
+ private ProgressBar mBatteryProgress;
+ private ProgressBar mVolumeProgress;
+ private int mBatteryStatus = 1;
+ private int mBatteryPercentage = 1;
+ private ImageView mVolumeLevelArcProgress;
+ private ImageView mRamUsageArcProgress;
+ private static long lastUpdated = System.currentTimeMillis();
+ private static final long thresholdTime = 500; // milliseconds
+ private int accent1, accent2, accent3, text1, text2;
+ private boolean customColor;
+ Class> LottieAn = null;
+ private boolean weatherEnabled = false, weatherShowLocation = true, weatherShowCondition = true;
+ private boolean weatherShowHumidity = true, weatherShowWind = true;
+ private boolean weatherCustomColor = false;
+ private int weatherColor = Color.WHITE;
+ private int weatherStartPadding = 0, weatherTextSize = 16, weatherImageSize = 18;
+
+ private final BroadcastReceiver mBatteryReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent != null && intent.getAction() != null && intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
+ mBatteryStatus = intent.getIntExtra(BatteryManager.EXTRA_STATUS, 1);
+ int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
+ int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
+ mBatteryPercentage = (level * 100) / scale;
+ initBatteryStatus();
+ }
+ }
+ };
+ private final BroadcastReceiver mVolumeReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ initSoundManager();
+ }
+ };
+
+ public LockscreenClock(Context context) {
+ super(context);
+ int resourceId = mContext.getResources().getIdentifier("red_horizontal_single_clock_margin_start", "dimen", listenPackage);
+ if (resourceId > 0) {
+ weatherStartPadding = mContext.getResources().getDimensionPixelSize(resourceId);
+ } else { weatherStartPadding = dp2px(mContext, 32); }
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ customLockscreenClock = Xprefs.getBoolean(LOCKSCREEN_CLOCK_SWITCH, false);
+ lockscreenClockStyle = Xprefs.getInt(LOCKSCREEN_CLOCK_STYLE, 0);
+ mStockClockRed = Integer.parseInt(Xprefs.getString(LOCKSCREEN_STOCK_CLOCK_RED_ONE, "0"));
+ mStockClockRedColor = Xprefs.getInt(LOCKSCREEN_STOCK_CLOCK_RED_ONE_COLOR, Color.WHITE);
+ accent1 = Xprefs.getInt(
+ LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT1,
+ getPrimaryColor(mContext)
+ );
+ accent2 = Xprefs.getInt(
+ LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT2,
+ ContextCompat.getColor(mContext, android.R.color.system_accent2_600)
+ );
+ accent3 = Xprefs.getInt(
+ LOCKSCREEN_CLOCK_COLOR_CODE_ACCENT3,
+ ContextCompat.getColor(mContext, android.R.color.system_accent3_600)
+ );
+ text1 = Xprefs.getInt(
+ LOCKSCREEN_CLOCK_COLOR_CODE_TEXT1,
+ Color.WHITE
+ );
+ text2 = Xprefs.getInt(
+ LOCKSCREEN_CLOCK_COLOR_CODE_TEXT2,
+ Color.BLACK
+ );
+ customColor = Xprefs.getBoolean(LOCKSCREEN_CLOCK_CUSTOM_COLOR_SWITCH, false);
+
+ // Weather
+ weatherEnabled = Xprefs.getBoolean(LOCKSCREEN_WEATHER_SWITCH, false);
+ weatherTextSize = Xprefs.getSliderInt(LOCKSCREEN_WEATHER_TEXT_SIZE, 16);
+ weatherImageSize = Xprefs.getSliderInt(LOCKSCREEN_WEATHER_IMAGE_SIZE, 18);
+ weatherShowLocation = Xprefs.getBoolean(LOCKSCREEN_WEATHER_SHOW_LOCATION, true);
+ weatherShowCondition = Xprefs.getBoolean(LOCKSCREEN_WEATHER_SHOW_CONDITION, true);
+ weatherShowHumidity = Xprefs.getBoolean(LOCKSCREEN_WEATHER_HUMIDITY, true);
+ weatherShowWind = Xprefs.getBoolean(LOCKSCREEN_WEATHER_WIND, true);
+ weatherCustomColor = Xprefs.getBoolean(LOCKSCREEN_WEATHER_CUSTOM_COLOR_SWITCH, false);
+ weatherColor = Xprefs.getInt(LOCKSCREEN_WEATHER_CUSTOM_COLOR, Color.WHITE);
+
+ if (Key.length > 0) {
+ for(String LCPrefs : LOCKSCREEN_CLOCK_PREFS) {
+ if (Key[0].equals(LCPrefs)) {
+ new Handler(Looper.getMainLooper()).post(this::updateClockView);
+ }
+ if (Key[0].equals(LOCKSCREEN_STOCK_CLOCK_RED_ONE) ||
+ Key[0].equals(LOCKSCREEN_STOCK_CLOCK_RED_ONE_COLOR)) {
+ updateStockClock();
+ }
+ }
+ for(String LCWeatherPref : LOCKSCREEN_WEATHER_PREFS) {
+ if (Key[0].equals(LCWeatherPref)) updateWeatherView();
+ }
+ }
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+ LottieAn = findClass("com.airbnb.lottie.LottieAnimationView", lpparam.classLoader);
+
+ initResources(mContext);
+
+ Class> KeyguardStatusViewClass = findClass("com.android.keyguard.KeyguardStatusView", lpparam.classLoader);
+
+ hookAllMethods(KeyguardStatusViewClass, "onFinishInflate", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+
+ mStatusViewContainer = (ViewGroup) getObjectField(param.thisObject, "mStatusViewContainer");
+
+ mClockViewContainer = mStatusViewContainer;
+
+ // Hide stock clock
+ GridLayout KeyguardStatusView = (GridLayout) param.thisObject;
+
+ mClockView = KeyguardStatusView.findViewById(mContext.getResources().getIdentifier("keyguard_clock_container", "id", mContext.getPackageName()));
+
+
+ mMediaHostContainer = (View) getObjectField(param.thisObject, "mMediaHostContainer");
+
+
+ registerClockUpdater();
+
+ placeWeatherView();
+ }
+ });
+
+ Class> SingleClockView = findClass("com.oplus.systemui.shared.clocks.SingleClockView", lpparam.classLoader);
+ findAndHookMethod(SingleClockView, "updateStandardTime", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mStockClock = param.thisObject;
+
+ if (customLockscreenClock || mStockClockRed == 0) return;
+
+ try {
+ TextView mTimeHour = (TextView) getObjectField(param.thisObject, "mTimeHour");
+ String mHour = (String) getObjectField(param.thisObject, "mHour");
+ setClockRed(mTimeHour, mHour);
+ } catch (Throwable ignored) {}
+ }
+ });
+
+ Class> RedTextClock = findClass("com.oplus.systemui.shared.clocks.RedTextClock", lpparam.classLoader);
+ findAndHookMethod(RedTextClock, "onTimeChanged", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (customLockscreenClock || mStockClockRed == 0) return;
+
+ boolean mShouldRunTicker = getBooleanField(param.thisObject, "mShouldRunTicker");
+ if (!mShouldRunTicker) return;
+
+ try {
+ Calendar mTime = (Calendar) getObjectField(param.thisObject, "mTime");
+ String format = (String) getObjectField(param.thisObject, "format");
+ String mHour = DateFormat.format(format, mTime).toString();
+ TextView mTimeHour = (TextView) param.thisObject;
+ setClockRed(mTimeHour, mHour);
+ } catch (Throwable ignored) {}
+ }
+ });
+
+ }
+
+ private void initResources(Context context) {
+ try {
+ appContext = context.createPackageContext(
+ BuildConfig.APPLICATION_ID,
+ Context.CONTEXT_IGNORE_SECURITY
+ );
+ } catch (PackageManager.NameNotFoundException ignored) {
+ }
+
+ mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+ mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+
+ try {
+ context.registerReceiver(mBatteryReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ } catch (Exception ignored) {
+ }
+ try {
+ context.registerReceiver(mVolumeReceiver, new IntentFilter("android.media.VOLUME_CHANGED_ACTION"));
+ } catch (Exception ignored) {
+ }
+ }
+
+ // Broadcast receiver for updating clock
+ private void registerClockUpdater() {
+ if (mClockViewContainer == null) return;
+
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(Intent.ACTION_TIME_TICK);
+ filter.addAction(Intent.ACTION_TIME_CHANGED);
+ filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
+ filter.addAction(Intent.ACTION_LOCALE_CHANGED);
+
+ BroadcastReceiver timeChangedReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent != null) {
+ new Handler(Looper.getMainLooper()).post(() -> updateClockView());
+ }
+ }
+ };
+
+ mContext.registerReceiver(timeChangedReceiver, filter);
+
+ new Handler(Looper.getMainLooper()).post(this::updateClockView);
+ }
+
+ private void updateClockView() {
+ if (mClockViewContainer == null) return;
+
+ if (customLockscreenClock) {
+ if (mClockView != null && mClockView.getVisibility() != View.INVISIBLE) mClockView.setVisibility(View.INVISIBLE);
+ if (mMediaHostContainer != null && mMediaHostContainer.getVisibility() != View.INVISIBLE) mMediaHostContainer.setVisibility(View.INVISIBLE);
+ } else {
+ if (mClockView != null && mClockView.getVisibility() != View.VISIBLE) mClockView.setVisibility(View.VISIBLE);
+ if (mMediaHostContainer != null && mMediaHostContainer.getVisibility() != View.VISIBLE) mMediaHostContainer.setVisibility(View.VISIBLE);
+ }
+
+
+ long currentTime = System.currentTimeMillis();
+ boolean isClockAdded = mClockViewContainer.findViewWithTag(OC_LOCKSCREEN_CLOCK_TAG) != null;
+ boolean isDepthClock = mClockViewContainer.getTag() == OC_DEPTH_WALLPAPER_TAG;
+
+ if (!customLockscreenClock) {
+ if (isClockAdded) mClockViewContainer.removeView(mClockViewContainer.findViewWithTag(OC_LOCKSCREEN_CLOCK_TAG));
+ return;
+ }
+
+ if (isClockAdded && currentTime - lastUpdated < thresholdTime) {
+ return;
+ } else {
+ lastUpdated = currentTime;
+ }
+ View clockView = getClockView();
+
+ // Remove existing clock view
+ if (isClockAdded) {
+ mClockViewContainer.removeView(mClockViewContainer.findViewWithTag(OC_LOCKSCREEN_CLOCK_TAG));
+ }
+
+ if (clockView != null) {
+ clockView.setTag(OC_LOCKSCREEN_CLOCK_TAG);
+
+ int idx = 0;
+ LinearLayout dummyLayout = null;
+
+ if (isDepthClock) {
+ /*
+ If the clock view container is the depth wallpaper container, we need to
+ add the clock view to the middle of foreground and background images
+ */
+ if (mClockViewContainer.getChildCount() > 0) {
+ idx = 1;
+ }
+
+ // Add a dummy layout to the status view container so that we can still move notifications
+ if (mStatusViewContainer != null) {
+ String dummy_tag = "dummy_layout";
+ dummyLayout = mStatusViewContainer.findViewWithTag(dummy_tag);
+
+ if (dummyLayout == null) {
+ dummyLayout = new LinearLayout(mContext);
+ dummyLayout.setLayoutParams(new LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ 350
+ ));
+ dummyLayout.setTag(dummy_tag);
+
+ mStatusViewContainer.addView(dummyLayout, 0);
+ }
+ }
+ }
+
+ if (clockView.getParent() != null) {
+ ((ViewGroup) clockView.getParent()).removeView(clockView);
+ }
+
+
+ mClockViewContainer.addView(clockView, idx);
+ modifyClockView(clockView);
+ initSoundManager();
+ initBatteryStatus();
+
+ if (isDepthClock && dummyLayout != null) {
+ ViewGroup.MarginLayoutParams dummyParams = (ViewGroup.MarginLayoutParams) dummyLayout.getLayoutParams();
+ ViewGroup.MarginLayoutParams clockParams = (ViewGroup.MarginLayoutParams) clockView.getLayoutParams();
+ dummyParams.topMargin = clockParams.topMargin;
+ dummyParams.bottomMargin = clockParams.bottomMargin;
+ dummyLayout.setLayoutParams(dummyParams);
+ }
+ }
+ }
+
+ @SuppressLint("DiscouragedApi")
+ private View getClockView() {
+ LayoutInflater inflater = LayoutInflater.from(appContext);
+
+ View v = inflater.inflate(
+ appContext
+ .getResources()
+ .getIdentifier(
+ LOCKSCREEN_CLOCK_LAYOUT + lockscreenClockStyle,
+ "layout",
+ BuildConfig.APPLICATION_ID
+ ),
+ null
+ );
+
+ loadLottieAnimationView(
+ appContext,
+ LottieAn,
+ v,
+ lockscreenClockStyle
+ );
+
+ return v;
+
+ }
+
+ private void modifyClockView(View clockView) {
+ int topMargin = Xprefs.getSliderInt(LOCKSCREEN_CLOCK_TOP_MARGIN, 100);
+ int bottomMargin = Xprefs.getSliderInt(LOCKSCREEN_CLOCK_BOTTOM_MARGIN, 40);
+ float clockScale = Xprefs.getSliderFloat(LOCKSCREEN_CLOCK_TEXT_SCALING, 1.0f);
+ String customFont = Environment.getExternalStorageDirectory() + "/.oxygen_customizer/lockscreen_clock_font.ttf";
+ int lineHeight = Xprefs.getSliderInt(LOCKSCREEN_CLOCK_LINE_HEIGHT, 0);
+ boolean customFontEnabled = Xprefs.getBoolean(LOCKSCREEN_CLOCK_CUSTOM_FONT, false);
+ boolean useCustomName = Xprefs.getBoolean(LOCKSCREEN_CLOCK_CUSTOM_USER, false);
+ String customName = Xprefs.getString(LOCKSCREEN_CLOCK_CUSTOM_USER_VALUE, getUserName());
+ boolean useCustomImage = Xprefs.getBoolean(LOCKSCREEN_CLOCK_CUSTOM_USER_IMAGE, false);
+ int systemAccent = getPrimaryColor(mContext);
+
+ Typeface typeface = null;
+ if (customFontEnabled && (new File(customFont).exists())) {
+ typeface = Typeface.createFromFile(new File(customFont));
+ }
+
+ ViewHelper.setMargins(clockView, mContext, 0, topMargin, 0, bottomMargin);
+
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent1", customColor ? accent1 : systemAccent);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent2", customColor ? accent2 : systemAccent);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent3", customColor ? accent3 : systemAccent);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "text1", customColor ? text1 : Color.WHITE);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "text2", customColor ? text2 : Color.WHITE);
+
+ if (typeface != null) {
+ ViewHelper.applyFontRecursively((ViewGroup) clockView, typeface);
+ }
+
+ ViewHelper.applyTextMarginRecursively((ViewGroup) clockView, lineHeight);
+
+ if (clockScale != 1.0f) {
+ ViewHelper.applyTextScalingRecursively((ViewGroup) clockView, clockScale);
+ }
+
+ switch (lockscreenClockStyle) {
+ case 5 -> {
+ mBatteryStatusView = clockView.findViewById(R.id.battery_status);
+ mBatteryLevelView = clockView.findViewById(R.id.battery_percentage);
+ mVolumeLevelView = clockView.findViewById(R.id.volume_level);
+ mBatteryProgress = clockView.findViewById(R.id.battery_progressbar);
+ mVolumeProgress = clockView.findViewById(R.id.volume_progressbar);
+ }
+ case 7 -> {
+ TextView usernameView = clockView.findViewById(R.id.summary);
+ usernameView.setText(useCustomName ? customName : getUserName());
+ ImageView imageView = clockView.findViewById(R.id.user_profile_image);
+ imageView.setImageDrawable(useCustomImage ? getCustomUserImage() : getUserImage());
+ }
+ case 19 -> {
+ mBatteryLevelView = clockView.findViewById(R.id.battery_percentage);
+ mBatteryProgress = clockView.findViewById(R.id.battery_progressbar);
+ mVolumeLevelArcProgress = clockView.findViewById(R.id.volume_progress);
+ mRamUsageArcProgress = clockView.findViewById(R.id.ram_usage_info);
+
+ mBatteryProgress.setProgressTintList(ColorStateList.valueOf(customColor ? accent1 : getPrimaryColor(mContext)));
+
+ ((TextView) clockView.findViewById(R.id.device_name)).setText(Build.MODEL);
+ }
+ default -> {
+ mBatteryStatusView = null;
+ mBatteryLevelView = null;
+ mVolumeLevelView = null;
+ mBatteryProgress = null;
+ mVolumeProgress = null;
+ }
+ }
+ }
+
+ private void initBatteryStatus() {
+ if (mBatteryStatusView != null) {
+ if (mBatteryStatus == BatteryManager.BATTERY_STATUS_CHARGING) {
+ mBatteryStatusView.setText(R.string.battery_charging);
+ } else if (mBatteryStatus == BatteryManager.BATTERY_STATUS_DISCHARGING ||
+ mBatteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
+ mBatteryStatusView.setText(R.string.battery_discharging);
+ } else if (mBatteryStatus == BatteryManager.BATTERY_STATUS_FULL) {
+ mBatteryStatusView.setText(R.string.battery_full);
+ } else if (mBatteryStatus == BatteryManager.BATTERY_STATUS_UNKNOWN) {
+ mBatteryStatusView.setText(R.string.battery_level_percentage);
+ }
+ }
+
+ if (mBatteryProgress != null) {
+ mBatteryProgress.setProgress(mBatteryPercentage);
+ if (lockscreenClockStyle == 19) {
+ mBatteryProgress.setProgressTintList(ColorStateList.valueOf(customColor ? accent1 : getPrimaryColor(mContext)));
+ }
+ }
+ if (mBatteryLevelView != null) {
+ mBatteryLevelView.setText(appContext.getResources().getString(R.string.percentage_text, mBatteryPercentage));
+ }
+
+ initRamUsage();
+ }
+
+ private void initSoundManager() {
+ int volLevel = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
+ int maxVolLevel = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
+ int volPercent = (int) (((float) volLevel / maxVolLevel) * 100);
+
+ if (mVolumeProgress != null) {
+ mVolumeProgress.setProgress(volPercent);
+ }
+ if (mVolumeLevelView != null) {
+ mVolumeLevelView.setText(appContext.getResources().getString(R.string.percentage_text, volPercent));
+ }
+
+ if (mVolumeLevelArcProgress != null) {
+ Bitmap widgetBitmap = ArcProgressWidget.generateBitmap(
+ mContext,
+ volPercent,
+ appContext.getResources().getString(R.string.percentage_text, volPercent),
+ 32,
+ ContextCompat.getDrawable(appContext, R.drawable.ic_volume_up),
+ 36,
+ customColor ? accent1 : getPrimaryColor(mContext)
+ );
+ mVolumeLevelArcProgress.setImageBitmap(widgetBitmap);
+ }
+ }
+
+ private void initRamUsage() {
+ if (mActivityManager == null) return;
+
+ ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
+ mActivityManager.getMemoryInfo(memoryInfo);
+ long usedMemory = memoryInfo.totalMem - memoryInfo.availMem;
+ int usedMemoryPercentage = (int) ((usedMemory * 100) / memoryInfo.totalMem);
+
+ if (mRamUsageArcProgress != null) {
+ Bitmap widgetBitmap = ArcProgressWidget.generateBitmap(
+ mContext,
+ usedMemoryPercentage,
+ appContext.getResources().getString(R.string.percentage_text, usedMemoryPercentage),
+ 32,
+ "RAM",
+ 20,
+ customColor ? accent1 : getPrimaryColor(mContext)
+ );
+ mRamUsageArcProgress.setImageBitmap(widgetBitmap);
+ }
+ }
+
+ @SuppressLint("MissingPermission")
+ private String getUserName() {
+ if (mUserManager == null) {
+ return "User";
+ }
+
+ String username = mUserManager.getUserName();
+ return !username.isEmpty() ?
+ mUserManager.getUserName() :
+ appContext.getResources().getString(R.string.default_user_name);
+ }
+
+ @SuppressWarnings("all")
+ private Drawable getUserImage() {
+ if (mUserManager == null) {
+ return appContext.getResources().getDrawable(R.drawable.default_avatar);
+ }
+
+ try {
+ Method getUserIconMethod = mUserManager.getClass().getMethod("getUserIcon", int.class);
+ int userId = (int) UserHandle.class.getDeclaredMethod("myUserId").invoke(null);
+ Bitmap bitmapUserIcon = (Bitmap) getUserIconMethod.invoke(mUserManager, userId);
+ return new BitmapDrawable(mContext.getResources(), bitmapUserIcon);
+ } catch (Throwable throwable) {
+ log(TAG + throwable);
+ return appContext.getResources().getDrawable(R.drawable.default_avatar);
+ }
+ }
+
+ private Drawable getCustomUserImage() {
+ Drawable customUserImage = null;
+ try {
+ ImageDecoder.Source source = ImageDecoder.createSource(new File(Environment.getExternalStorageDirectory() + "/.oxygen_customizer/lockscreen_user_image.png"));
+
+ Drawable drawable = ImageDecoder.decodeDrawable(source);
+
+ if (drawable instanceof AnimatedImageDrawable) {
+ ((AnimatedImageDrawable) drawable).setRepeatCount(AnimatedImageDrawable.REPEAT_INFINITE);
+ ((AnimatedImageDrawable) drawable).start();
+ }
+
+ return drawable;
+ } catch (Throwable ignored) {
+ return ResourcesCompat.getDrawable(appContext.getResources(), R.drawable.default_avatar, appContext.getTheme());
+ }
+ }
+
+ private void updateStockClock() {
+ if (mStockClock != null) {
+ callMethod(mStockClock, "updateStandardTime");
+ }
+ }
+
+ private void setClockRed(TextView tv, String hour) {
+ int colorToApply = getPrimaryColor(mContext);
+ if (mStockClockRed == 1) {
+ colorToApply = tv.getCurrentTextColor();
+ } else if (mStockClockRed == 3) colorToApply = mStockClockRedColor;
+ StringBuilder sb = new StringBuilder(hour);
+ SpannableString spannableString = new SpannableString(sb);
+ for (int i = 0; i < 2 && i < sb.length(); i++) {
+ if (sb.charAt(i) == '1') {
+ spannableString.setSpan(new ForegroundColorSpan(colorToApply), i, i + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+ }
+ tv.setText(spannableString, TextView.BufferType.SPANNABLE);
+ }
+
+ private void placeWeatherView() {
+ try {
+ CurrentWeatherView currentWeatherView = CurrentWeatherView.getInstance(mContext);
+ try {
+ ((ViewGroup) currentWeatherView.getParent()).removeView(currentWeatherView);
+ } catch (Throwable ignored) {
+ }
+ currentWeatherView.setPadding(weatherStartPadding, 0, 0, 0);
+ mClockViewContainer.addView(currentWeatherView);
+ refreshWeatherView(currentWeatherView);
+ } catch (Throwable ignored) {
+ }
+ }
+
+ private void refreshWeatherView(CurrentWeatherView currentWeatherView) {
+ if (currentWeatherView == null) return;
+ CurrentWeatherView.updateSizes(weatherTextSize, weatherImageSize);
+ CurrentWeatherView.updateColors(weatherCustomColor ? weatherColor : Color.WHITE);
+ CurrentWeatherView.updateWeatherSettings(weatherShowLocation, weatherShowCondition, weatherShowHumidity, weatherShowWind);
+ currentWeatherView.setVisibility(weatherEnabled ? View.VISIBLE : View.GONE);
+ }
+
+ private void updateWeatherView() {
+ refreshWeatherView(CurrentWeatherView.getInstance());
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/navbar/GestureNavbarManager.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/navbar/GestureNavbarManager.java
new file mode 100644
index 000000000..046f34d01
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/navbar/GestureNavbarManager.java
@@ -0,0 +1,340 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.navbar;
+
+import static android.view.MotionEvent.ACTION_DOWN;
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getFloatField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static de.robv.android.xposed.XposedHelpers.setObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.app.ActivityManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.graphics.Point;
+import android.graphics.drawable.Drawable;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.SystemClock;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.MotionEvent;
+import android.widget.Toast;
+
+import androidx.core.content.res.ResourcesCompat;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.ResourceManager;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.hooks.framework.Buttons;
+import it.dhd.oxygencustomizer.xposed.utils.DrawableConverter;
+import it.dhd.oxygencustomizer.xposed.utils.ShellUtils;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+
+public class GestureNavbarManager extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+
+ private Object SideGestureConfigurationEx;
+
+ //region Back gesture
+ private float backGestureHeightFractionLeft = 1f; // % of screen height. can be anything between 0 to 1
+ private float backGestureHeightFractionRight = 1f; // % of screen height. can be anything between 0 to 1
+ private boolean leftEnabled = true;
+ private boolean rightEnabled = true;
+ private boolean onRotationToo = true;
+ private boolean overrideBack = false;
+ private int overrideMode = 0;
+ private int overrideLeft = 0;
+ private int overrideRight = 0;
+ private int mDirection;
+ private String QSExpandMethodName = "";
+ private Object NotificationPanelViewController;
+
+
+ public GestureNavbarManager(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ //region Back gesture
+ leftEnabled = Xprefs.getBoolean("gesture_left", true);
+ rightEnabled = Xprefs.getBoolean("gesture_right", true);
+ backGestureHeightFractionLeft = Xprefs.getSliderInt( "gesture_left_height", 100) / 100f;
+ backGestureHeightFractionRight = Xprefs.getSliderInt( "gesture_right_height", 100) / 100f;
+ onRotationToo = Xprefs.getBoolean("gesture_on_rotate", true);
+ overrideBack = Xprefs.getBoolean("gesture_override_holdback", false);
+ overrideMode = Integer.parseInt(Xprefs.getString("gesture_override_holdback_mode", "0"));
+ overrideLeft = Integer.parseInt(Xprefs.getString("gesture_override_holdback_left", "0"));
+ overrideRight = Integer.parseInt(Xprefs.getString("gesture_override_holdback_right", "0"));
+ //endregion
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+ Class> SideGestureDetector = findClass("com.oplus.systemui.navigationbar.gesture.sidegesture.SideGestureDetector", lpparam.classLoader);
+ Class> SideGestureNavView = findClass("com.oplus.systemui.navigationbar.gesture.sidegesture.SideGestureNavView", lpparam.classLoader);
+ Class> ScreenShotRunnable = findClass("com.oplus.systemui.qs.tiles.ScreenshotTile$ScreenShotRunnable", lpparam.classLoader);
+
+
+ hookAllConstructors(SideGestureDetector, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ SideGestureConfigurationEx = getObjectField(param.thisObject, "mSideGestureConfiguration");
+ }
+ });
+
+ hookAllMethods(SideGestureDetector, "onMotionEventImpl", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ MotionEvent ev = (MotionEvent) param.args[0];
+
+ if (getForegroundApp()[0].equals(getDefaultLauncherPackageName())) return;
+
+ Point mDisplaySize = (Point) getObjectField(param.thisObject, "mDisplaySize");
+ boolean isLeftSide = ev.getX() < (mDisplaySize.x / 3f);
+ mDirection = isLeftSide ? 0 : 1;
+ if (ev.getActionMasked() == ACTION_DOWN) //down action is enough. once gesture is refused it won't accept further actions
+ {
+ int mBottomGestureHeight = (int) callMethod(SideGestureConfigurationEx, "getBottomGestureAreaHeight");
+ int rotation = (int) getFloatField(param.thisObject, "mRotation");
+ if (notWithinInsets(ev.getX(),
+ ev.getY(),
+ mDisplaySize,
+ mBottomGestureHeight, rotation)) {
+ setObjectField(param.thisObject, "mAllowGesture", false); //act like the gesture was not good enough
+ param.setResult(null); //and stop the current method too
+ }
+ }
+ }
+ });
+
+ hookAllMethods(SideGestureNavView, "setAppIcon", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (overrideBack) {
+ Drawable icon;
+ if (overrideMode == 0) {
+ if (overrideLeft == 0) return;
+ icon = getActionIcon(overrideLeft);
+ } else {
+ if (mDirection == 0) {
+ if (overrideLeft == 0) return;
+ icon = getActionIcon(overrideLeft);
+ } else {
+ if (overrideRight == 0) return;
+ icon = getActionIcon(overrideRight);
+ }
+ }
+ param.args[0] = DrawableConverter.drawableToBitmap(icon);
+ }
+ }
+ });
+
+ findAndHookMethod(SideGestureDetector, "switchApp", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (overrideBack) {
+ if (overrideMode == 0) {
+ if (overrideLeft == 0) return;
+ runAction(overrideLeft);
+ } else {
+ if (mDirection == 0) {
+ if (overrideLeft == 0) return;
+ runAction(overrideLeft);
+ } else {
+ if (overrideRight == 0) return;
+ runAction(overrideRight);
+ }
+ }
+ param.setResult(null);
+ }
+ }
+ });
+
+ Class> NotificationPanelViewControllerClass = findClass("com.android.systemui.shade.NotificationPanelViewController", lpparam.classLoader);
+
+ QSExpandMethodName = Arrays.stream(NotificationPanelViewControllerClass.getMethods())
+ .anyMatch(m -> m.getName().equals("expandToQs"))
+ ? "expandToQs" //A14
+ : "expandWithQs"; //A13
+
+ hookAllConstructors(NotificationPanelViewControllerClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ NotificationPanelViewController = param.thisObject;
+ }
+ });
+
+ hookAllMethods(NotificationPanelViewControllerClass, "createTouchHandler", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ NotificationPanelViewController = param.thisObject;
+ }
+ });
+
+ }
+
+ private Drawable getActionIcon(int action) {
+ int resId = switch (action) {
+ case 0 -> R.drawable.ic_switch_app;
+ case 1 -> R.drawable.ic_clear_all;
+ case 2 -> R.drawable.ic_kill;
+ case 3 -> R.drawable.ic_screenshot;
+ case 4 -> R.drawable.ic_quick_settings;
+ case 5 -> R.drawable.ic_power_menu;
+ case 6 -> R.drawable.ic_notifications;
+ case 7 -> R.drawable.ic_screen_off;
+ default -> 0;
+ };
+ return ResourcesCompat.getDrawable(ResourceManager.modRes,
+ resId,
+ mContext.getTheme());
+ }
+
+ private void runAction(int action) {
+ switch (action) {
+ case 2 -> killForegroundApp();
+ case 3 -> takeScreenshot();
+ case 4 -> showQs();
+ case 5 -> showPowerMenu();
+ case 7 -> callMethod(SystemUtils.PowerManager(), "goToSleep", SystemClock.uptimeMillis());
+ }
+ }
+
+ //region Back gesture
+ private boolean notWithinInsets(float x, float y, Point mDisplaySize, float mBottomGestureHeight, int rotation) {
+ boolean isLeftSide = x < (mDisplaySize.x / 3f);
+ if (!onRotationToo &&
+ (rotation == 1 ||
+ rotation == 3)) return false;
+ if ((isLeftSide && !leftEnabled)
+ || (!isLeftSide && !rightEnabled)) {
+ return true;
+ }
+
+ int mEdgeHeight = isLeftSide ?
+ Math.round(mDisplaySize.y * backGestureHeightFractionLeft) :
+ Math.round(mDisplaySize.y * backGestureHeightFractionRight);
+
+ return mEdgeHeight != 0
+ && y < (mDisplaySize.y
+ - mBottomGestureHeight
+ - mEdgeHeight);
+ }
+ //endregion
+
+ private String[] getForegroundApp() {
+ ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
+ List processes = am.getRunningAppProcesses();
+
+ String foregroundApp = null;
+ String uid = null;
+ for (ActivityManager.RunningAppProcessInfo processInfo : processes) {
+ if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
+ foregroundApp = processInfo.processName;
+ uid = String.valueOf(processInfo.uid);
+ break;
+ }
+ }
+ return new String[]{foregroundApp, uid};
+ }
+
+ private void killForegroundApp() {
+ Handler mainHandler = new Handler(Looper.getMainLooper());
+ Log.d("KillAppNow", "Killing foreground app");
+ mainHandler.post(() -> {
+ try {
+ ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
+ List processes = am.getRunningAppProcesses();
+
+ String foregroundApp = null;
+ String[] appInfo = getForegroundApp();
+ foregroundApp = appInfo[0];
+ String uid = appInfo[1];
+ log("Foreground app: " + foregroundApp + " with UID: " + uid);
+
+
+ if (foregroundApp != null && !foregroundApp.equals(Constants.Packages.SYSTEM_UI) && !foregroundApp.equals(getDefaultLauncherPackageName())) {
+ //am.killBackgroundProcesses(foregroundApp);
+ if (ShellUtils.checkRootPermission()) {
+ List commands = new ArrayList<>();
+ commands.add("killall " + foregroundApp);
+ commands.add("am force-stop " + foregroundApp);
+ ShellUtils.execCommand(commands, true);
+ }
+ String appLabel = getApplicationLabel(foregroundApp, mContext.getPackageManager());
+ Toast.makeText(mContext, "Killed: " + appLabel, Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(mContext, "Nothing to kill.", Toast.LENGTH_SHORT).show();
+ }
+ } catch (Throwable t) {
+ Log.e("KillAppNow", "Error in killForegroundApp", t);
+ }
+ });
+ }
+
+ private void takeScreenshot() {
+
+ }
+
+ private void showQs() {
+ if (TextUtils.isEmpty(QSExpandMethodName) || NotificationPanelViewController == null) return;
+
+ try {
+ callMethod(NotificationPanelViewController, QSExpandMethodName);
+ } catch (Throwable t) {
+ Log.e("ShowQs", "Error in showQs", t);
+ }
+ }
+
+ private void showPowerMenu() {
+ Intent broadcast = new Intent(Constants.ACTION_POWER_MENU);
+ broadcast.setPackage(BuildConfig.APPLICATION_ID);
+ mContext.sendBroadcast(broadcast);
+ }
+
+ private String getDefaultLauncherPackageName() {
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.addCategory(Intent.CATEGORY_HOME);
+ ResolveInfo resolveInfo = mContext.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
+ if (resolveInfo != null) {
+ return resolveInfo.activityInfo.packageName;
+ }
+ return null;
+ }
+
+ private String getApplicationLabel(String packageName, PackageManager pm) {
+ try {
+ ApplicationInfo appInfo = pm.getApplicationInfo(packageName, 0);
+ return (String) pm.getApplicationLabel(appInfo);
+ } catch (PackageManager.NameNotFoundException e) {
+ return packageName; // Fallback to package name if the app label is not found
+ }
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return packageName.equals(listenPackage);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/BatteryBar.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/BatteryBar.java
new file mode 100644
index 000000000..8a747849a
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/BatteryBar.java
@@ -0,0 +1,189 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.findClassIfExists;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.views.BatteryBarView;
+
+public class BatteryBar extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private FrameLayout fullStatusbar;
+ private Object mStatusBarIconController;
+ private ViewGroup mStatusBar;
+ private Object mCollapsedStatusBarFragment = null;
+
+ private boolean BBarEnabled;
+ private static boolean BBarColorful;
+ private static boolean BBOnlyWhileCharging;
+ private static boolean BBOnBottom;
+ private static boolean BBSetCentered;
+ private static boolean BBAnimateCharging;
+ private static int BBOpacity = 100;
+ private static int BBarHeight = 10;
+ private static List batteryLevels = Arrays.asList(20f, 40f);
+ private static int[] batteryColors = new int[]{Color.RED, Color.YELLOW};
+ private static int chargingColor = Color.WHITE;
+ private static int fastChargingColor = Color.WHITE;
+ private static boolean indicateCharging = false;
+ private static boolean indicateFastCharging = false;
+ private static boolean BBarTransitColors = false;
+ private static boolean indicatePowerSave = false;
+ private static int powerSaveColor = Color.GREEN;
+
+ public BatteryBar(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ BBarEnabled = Xprefs.getBoolean("BBarEnabled", false);
+ BBarColorful = Xprefs.getBoolean("BBarColorful", false);
+ BBOnlyWhileCharging = Xprefs.getBoolean("BBOnlyWhileCharging", false);
+ BBOnBottom = Xprefs.getBoolean("BBOnBottom", false);
+ BBSetCentered = Xprefs.getBoolean("BBSetCentered", false);
+ BBAnimateCharging = Xprefs.getBoolean("BBAnimateCharging", true);
+ BBOpacity = Xprefs.getSliderInt("BBOpacity", 100);
+ BBarHeight = Xprefs.getSliderInt("BBarHeight", 50);
+ BBarTransitColors = Xprefs.getBoolean("BBarTransitColors", false);
+
+ batteryLevels = Xprefs.getSliderValues("batteryWarningRange", 0);
+
+ batteryColors = new int[]{
+ Xprefs.getInt("batteryCriticalColor", Color.RED),
+ Xprefs.getInt("batteryWarningColor", Color.YELLOW)};
+
+ indicateFastCharging = Xprefs.getBoolean("indicateFastCharging", false);
+ indicateCharging = Xprefs.getBoolean("indicateCharging", true);
+ indicatePowerSave = Xprefs.getBoolean("indicatePowerSave", false);
+ powerSaveColor = Xprefs.getInt("batteryPowerSaveColor", Color.GREEN);
+
+ chargingColor = Xprefs.getInt("batteryChargingColor", Color.GREEN);
+ fastChargingColor = Xprefs.getInt("batteryFastChargingColor", Color.GREEN);
+
+ if (Key.length > 0) {
+ if (Key[0].equals("BBarEnabled")) {
+ if (BBarEnabled) {
+ placeBatteryBar();
+ }
+ }
+ if (BatteryBarView.hasInstance()) {
+ refreshBatteryBar(BatteryBarView.getInstance());
+ }
+ }
+
+
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+ Class> CollapsedStatusBarFragmentClass = findClassIfExists("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment", lpparam.classLoader);
+ Class> PhoneStatusBarViewClass = findClass("com.android.systemui.statusbar.phone.PhoneStatusBarView", lpparam.classLoader);
+
+ //getting statusbar class for further use
+ hookAllConstructors(CollapsedStatusBarFragmentClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mCollapsedStatusBarFragment = param.thisObject;
+ }
+ });
+
+ hookAllMethods(PhoneStatusBarViewClass, "onConfigurationChanged", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ new Timer().schedule(new TimerTask() {
+ @Override
+ public void run() {
+ if (BatteryBarView.hasInstance()) {
+ BatteryBarView.getInstance().post(() -> refreshBatteryBar(BatteryBarView.getInstance()));
+ }
+ }
+ }, 2000);
+ }
+ });
+
+
+ findAndHookMethod(CollapsedStatusBarFragmentClass,
+ "onViewCreated", View.class, Bundle.class, new XC_MethodHook() {
+ @SuppressLint("DiscouragedApi")
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+
+ mStatusBarIconController = getObjectField(param.thisObject, "mStatusBarIconController");
+
+ mStatusBar = (ViewGroup) getObjectField(mCollapsedStatusBarFragment, "mStatusBar");
+
+ fullStatusbar = (FrameLayout) mStatusBar.getParent();
+
+
+ if (BBarEnabled) //in case we got the config but view wasn't ready yet
+ {
+ placeBatteryBar();
+ }
+ }
+ });
+
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+
+
+ private void refreshBatteryBar(BatteryBarView instance) {
+ BatteryBarView.setStaticColor(batteryLevels, batteryColors, indicateCharging, chargingColor, indicateFastCharging, fastChargingColor, indicatePowerSave, powerSaveColor, BBarTransitColors);
+ instance.setVisibility((BBarEnabled) ? VISIBLE : GONE);
+ instance.setColorful(BBarColorful);
+ instance.setOnlyWhileCharging(BBOnlyWhileCharging);
+ instance.setOnTop(!BBOnBottom);
+ instance.setSingleColorTone(Color.WHITE);
+ instance.setAlphaPct(BBOpacity);
+ instance.setBarHeight(Math.round(BBarHeight / 10f) + 5);
+ instance.setCenterBased(BBSetCentered);
+ instance.refreshLayout();
+ }
+
+ private void placeBatteryBar() {
+ try {
+ BatteryBarView batteryBarView = BatteryBarView.getInstance(mContext);
+ try {
+ ((ViewGroup) batteryBarView.getParent()).removeView(batteryBarView);
+ } catch (Throwable ignored) {
+ }
+ fullStatusbar.addView(batteryBarView);
+ refreshBatteryBar(BatteryBarView.getInstance());
+ } catch (Throwable ignored) {
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/BatteryStyleManager.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/BatteryStyleManager.java
new file mode 100644
index 000000000..6851a099a
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/BatteryStyleManager.java
@@ -0,0 +1,616 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookConstructor;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_CIRCLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_CUSTOM_LANDSCAPE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_CUSTOM_RLANDSCAPE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DEFAULT_LANDSCAPE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DEFAULT_RLANDSCAPE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_DOTTED_CIRCLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYA;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYB;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYC;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYD;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYF;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYG;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYI;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYJ;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYK;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYL;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYM;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_BATTERYO;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_COLOROS;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_IOS_15;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_IOS_16;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_MIUI_PILL;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_SMILEY;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_STYLE_A;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_LANDSCAPE_STYLE_B;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_PORTRAIT_AIROO;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_PORTRAIT_CAPSULE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_PORTRAIT_LORN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_PORTRAIT_MX;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_PORTRAIT_ORIGAMI;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_RLANDSCAPE_COLOROS;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_RLANDSCAPE_STYLE_A;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.BATTERY_STYLE_RLANDSCAPE_STYLE_B;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOMIZE_BATTERY_ICON;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_BLEND_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_CHARGING_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_CHARGING_ICON_STYLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_CHARGING_ICON_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_FILL_ALPHA;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_FILL_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_FILL_GRAD_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_HEIGHT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_HIDE_BATTERY;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_HIDE_PERCENTAGE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_INSIDE_PERCENTAGE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_LAYOUT_REVERSE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_MARGINS;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_MARGIN_BOTTOM;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_MARGIN_LEFT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_MARGIN_RIGHT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_MARGIN_TOP;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_PERIMETER_ALPHA;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_POWERSAVE_FILL_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_RAINBOW_FILL_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_STYLE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_SWAP_PERCENTAGE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.CUSTOM_BATTERY_WIDTH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.STOCK_CUSTOMIZE_PERCENTAGE_SIZE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.BatteryPrefs.STOCK_PERCENTAGE_SIZE;
+import static it.dhd.oxygencustomizer.xposed.ResourceManager.modRes;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider.getCurrentLevel;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider.isCharging;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider.isFastCharging;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider.isPowerSaving;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils.getChargingColor;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.core.content.res.ResourcesCompat;
+
+import java.util.ArrayList;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.batterystyles.BatteryDrawable;
+import it.dhd.oxygencustomizer.xposed.batterystyles.CircleBattery;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBattery;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryA;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryB;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryC;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryColorOS;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryD;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryE;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryF;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryG;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryH;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryI;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryJ;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryK;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryL;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryM;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryMIUIPill;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryN;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryO;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatterySmiley;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryStyleA;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryStyleB;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryiOS15;
+import it.dhd.oxygencustomizer.xposed.batterystyles.LandscapeBatteryiOS16;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryAiroo;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryCapsule;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryLorn;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryMx;
+import it.dhd.oxygencustomizer.xposed.batterystyles.PortraitBatteryOrigami;
+import it.dhd.oxygencustomizer.xposed.batterystyles.RLandscapeBattery;
+import it.dhd.oxygencustomizer.xposed.batterystyles.RLandscapeBatteryColorOS;
+import it.dhd.oxygencustomizer.xposed.batterystyles.RLandscapeBatteryStyleA;
+import it.dhd.oxygencustomizer.xposed.batterystyles.RLandscapeBatteryStyleB;
+import it.dhd.oxygencustomizer.xposed.utils.ShellUtils;
+
+public class BatteryStyleManager extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private static final String TAG = "Oxygen Customizer - " + BatteryStyleManager.class.getSimpleName() + ": ";
+
+ private TextView batteryPercentInView, batteryPercentOutView;
+ private static final ArrayList batteryViews = new ArrayList<>();
+ private static final int BatteryIconOpacity = 100;
+ private static int BatteryStyle = 0;
+ private static boolean mShowPercentInside = true;
+ private static boolean mHidePercentage = false;
+ private static boolean mHideBattery = false;
+ private static int mBatteryRotation = 0;
+ private static boolean CustomBatteryEnabled = false;
+ private static int mBatteryScaleWidth = 20;
+ private static int mBatteryScaleHeight = 20;
+ private static boolean mBatteryCustomDimension = false;
+ private static int mBatteryMarginLeft = 0;
+ private static int mBatteryMarginTop = 0;
+ private static int mBatteryMarginRight = 0;
+ private static int mBatteryMarginBottom = 0;
+ private static int mBatteryStockMarginLeft = 0, mBatteryStockMarginRight = 0;
+ private boolean DefaultLandscapeBatteryEnabled = false;
+ private int frameColor = Color.WHITE;
+ private int backgroundColor = Color.WHITE;
+ private int singleToneColor = Color.WHITE;
+ private boolean mBatteryLayoutReverse = false;
+ private boolean mScaledPerimeterAlpha = false;
+ private boolean mScaledFillAlpha = false;
+ private boolean mRainbowFillColor = false;
+ private boolean mCustomBlendColor = false;
+ private int mCustomChargingColor = Color.BLACK;
+ private int mCustomFillColor = Color.BLACK;
+ private int mCustomFillGradColor = Color.BLACK;
+ private int mCustomPowerSaveColor = Color.BLACK;
+ private int mCustomPowerSaveFillColor = Color.BLACK;
+ private int mCustomFastChargingColor = Color.BLACK;
+ private boolean mSwapPercentage = false;
+ private boolean mChargingIconSwitch = false;
+ private int mChargingIconStyle = 0;
+ private int mChargingIconML = 1;
+ private int mChargingIconMR = 0;
+ private int mChargingIconWH = 14;
+ private boolean mIsChargingImpl = false;
+ private boolean mIsCharging = false;
+ private ImageView mStockChargingIcon = null, mBatteryIcon = null;
+ private Object BatteryControllerImpl = null;
+ private boolean updating = false;
+ private boolean customizePercSize = false;
+ private int mBatteryPercSize = 14;
+
+ public BatteryStyleManager(Context context) {
+ super(context);
+
+ mBatteryStockMarginLeft = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("op_status_bar_battery_icon_margin_left", "dimen", mContext.getPackageName()));
+ mBatteryStockMarginRight = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("op_status_bar_battery_icon_margin_right", "dimen", mContext.getPackageName()));
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+
+ BatteryStyle = Integer.parseInt(Xprefs.getString(CUSTOM_BATTERY_STYLE, String.valueOf(BATTERY_STYLE_CUSTOM_RLANDSCAPE)));
+ boolean hidePercentage = Xprefs.getBoolean(CUSTOM_BATTERY_HIDE_PERCENTAGE, false);
+ boolean defaultInsidePercentage = BatteryStyle == BATTERY_STYLE_LANDSCAPE_IOS_16 ||
+ BatteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYL ||
+ BatteryStyle == BATTERY_STYLE_LANDSCAPE_BATTERYM;
+ boolean insidePercentage = (defaultInsidePercentage ||
+ Xprefs.getBoolean(CUSTOM_BATTERY_INSIDE_PERCENTAGE, false));
+
+ DefaultLandscapeBatteryEnabled = BatteryStyle == BATTERY_STYLE_DEFAULT_LANDSCAPE ||
+ BatteryStyle == BATTERY_STYLE_DEFAULT_RLANDSCAPE;
+ CustomBatteryEnabled = Xprefs.getBoolean(CUSTOMIZE_BATTERY_ICON, false);
+
+ if (DefaultLandscapeBatteryEnabled) {
+ if (BatteryStyle == BATTERY_STYLE_DEFAULT_RLANDSCAPE) {
+ mBatteryRotation = 90;
+ } else {
+ mBatteryRotation = 270;
+ }
+ } else {
+ mBatteryRotation = 0;
+ }
+
+ mHidePercentage = hidePercentage || insidePercentage;
+ mShowPercentInside = insidePercentage && (defaultInsidePercentage || !hidePercentage);
+ mHideBattery = Xprefs.getBoolean(CUSTOM_BATTERY_HIDE_BATTERY, false);
+ mBatteryLayoutReverse = Xprefs.getBoolean(CUSTOM_BATTERY_LAYOUT_REVERSE, false);
+ mBatteryCustomDimension = Xprefs.getBoolean(CUSTOM_BATTERY_MARGINS, false);
+ mBatteryScaleWidth = Xprefs.getSliderInt(CUSTOM_BATTERY_WIDTH, 20);
+ mBatteryScaleHeight = Xprefs.getSliderInt(CUSTOM_BATTERY_HEIGHT, 20);
+ mScaledPerimeterAlpha = Xprefs.getBoolean(CUSTOM_BATTERY_PERIMETER_ALPHA, false);
+ mScaledFillAlpha = Xprefs.getBoolean(CUSTOM_BATTERY_FILL_ALPHA, false);
+ mRainbowFillColor = Xprefs.getBoolean(CUSTOM_BATTERY_RAINBOW_FILL_COLOR, false);
+ mCustomBlendColor = Xprefs.getBoolean(CUSTOM_BATTERY_BLEND_COLOR, false);
+ mCustomChargingColor = Xprefs.getInt(CUSTOM_BATTERY_CHARGING_COLOR, Color.BLACK);
+ mCustomFillColor = Xprefs.getInt(CUSTOM_BATTERY_FILL_COLOR, Color.BLACK);
+ mCustomFillGradColor = Xprefs.getInt(CUSTOM_BATTERY_FILL_GRAD_COLOR, Color.BLACK);
+ mCustomPowerSaveColor = Xprefs.getInt(CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR, Color.BLACK);
+ mCustomPowerSaveFillColor = Xprefs.getInt(CUSTOM_BATTERY_POWERSAVE_FILL_COLOR, Color.BLACK);
+ mSwapPercentage = Xprefs.getBoolean(CUSTOM_BATTERY_SWAP_PERCENTAGE, false);
+ mChargingIconSwitch = Xprefs.getBoolean(CUSTOM_BATTERY_CHARGING_ICON_SWITCH, false);
+ mChargingIconStyle = Integer.parseInt(Xprefs.getString(CUSTOM_BATTERY_CHARGING_ICON_STYLE, "0"));
+ mChargingIconML = Xprefs.getSliderInt(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT, 1);
+ mChargingIconMR = Xprefs.getSliderInt(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT, 0);
+ mChargingIconWH = Xprefs.getSliderInt(CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT, 14);
+ mBatteryMarginLeft = dp2px(mContext, Xprefs.getSliderInt(CUSTOM_BATTERY_MARGIN_LEFT, mBatteryStockMarginLeft));
+ mBatteryMarginTop = dp2px(mContext, Xprefs.getSliderInt(CUSTOM_BATTERY_MARGIN_TOP, 0));
+ mBatteryMarginRight = dp2px(mContext, Xprefs.getSliderInt(CUSTOM_BATTERY_MARGIN_RIGHT, mBatteryStockMarginRight));
+ mBatteryMarginBottom = dp2px(mContext, Xprefs.getSliderInt(CUSTOM_BATTERY_MARGIN_BOTTOM, 0));
+
+ // Stock Style
+ customizePercSize = Xprefs.getBoolean(STOCK_CUSTOMIZE_PERCENTAGE_SIZE, false);
+ mBatteryPercSize = Xprefs.getSliderInt(STOCK_PERCENTAGE_SIZE, 14);
+
+ if (Key.length > 0 && (Key[0].equals(CUSTOMIZE_BATTERY_ICON) ||
+ Key[0].equals(CUSTOM_BATTERY_STYLE) ||
+ Key[0].equals(CUSTOM_BATTERY_HIDE_PERCENTAGE) ||
+ Key[0].equals(CUSTOM_BATTERY_LAYOUT_REVERSE) ||
+ Key[0].equals(CUSTOM_BATTERY_MARGINS) ||
+ Key[0].equals(CUSTOM_BATTERY_PERIMETER_ALPHA) ||
+ Key[0].equals(CUSTOM_BATTERY_FILL_ALPHA) ||
+ Key[0].equals(CUSTOM_BATTERY_RAINBOW_FILL_COLOR) ||
+ Key[0].equals(CUSTOM_BATTERY_BLEND_COLOR) ||
+ Key[0].equals(CUSTOM_BATTERY_CHARGING_COLOR) ||
+ Key[0].equals(CUSTOM_BATTERY_FILL_COLOR) ||
+ Key[0].equals(CUSTOM_BATTERY_FILL_GRAD_COLOR) ||
+ Key[0].equals(CUSTOM_BATTERY_POWERSAVE_INDICATOR_COLOR) ||
+ Key[0].equals(CUSTOM_BATTERY_POWERSAVE_FILL_COLOR) ||
+ Key[0].equals(CUSTOM_BATTERY_SWAP_PERCENTAGE) ||
+ Key[0].equals(CUSTOM_BATTERY_CHARGING_ICON_SWITCH) ||
+ Key[0].equals(CUSTOM_BATTERY_CHARGING_ICON_STYLE) ||
+ Key[0].equals(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_LEFT) ||
+ Key[0].equals(CUSTOM_BATTERY_CHARGING_ICON_MARGIN_RIGHT) ||
+ Key[0].equals(CUSTOM_BATTERY_CHARGING_ICON_WIDTH_HEIGHT) ||
+ Key[0].equals(CUSTOM_BATTERY_MARGIN_LEFT) ||
+ Key[0].equals(CUSTOM_BATTERY_MARGIN_TOP) ||
+ Key[0].equals(CUSTOM_BATTERY_MARGIN_RIGHT) ||
+ Key[0].equals(CUSTOM_BATTERY_MARGIN_BOTTOM) ||
+ Key[0].equals(CUSTOM_BATTERY_INSIDE_PERCENTAGE) ||
+ Key[0].equals(CUSTOM_BATTERY_WIDTH) ||
+ Key[0].equals(CUSTOM_BATTERY_HEIGHT) ||
+ Key[0].equals(STOCK_CUSTOMIZE_PERCENTAGE_SIZE) ||
+ Key[0].equals(STOCK_PERCENTAGE_SIZE)
+ )) {
+ notifyUpdate();
+ }
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!listensTo(lpparam.packageName)) return;
+
+ Class> StatBatteryMeterView = findClass("com.oplus.systemui.statusbar.pipeline.battery.ui.view.StatBatteryMeterView", lpparam.classLoader);
+ Class> BatteryIconColor = findClass("com.oplus.systemui.statusbar.pipeline.battery.ui.model.BatteryIconColor", lpparam.classLoader);
+
+ findAndHookConstructor(BatteryIconColor,
+ int.class,
+ int.class,
+ int.class,
+ new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ /*
+ this.singleToneColor = i;
+ this.foregroundColor = i2;
+ this.backgroundColor = i3;
+ */
+ singleToneColor = (int) param.args[0];
+ frameColor = (int) param.args[1];
+ backgroundColor = (int) param.args[2];
+ }
+ });
+
+ Class> BatteryControllerImplClass = findClass("com.android.systemui.statusbar.policy.BatteryControllerImpl", lpparam.classLoader);
+ hookAllConstructors(BatteryControllerImplClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ BatteryControllerImpl = param.thisObject;
+ }
+ });
+
+ Class> BatteryViewBinder = findClass("com.oplus.systemui.statusbar.pipeline.battery.ui.binder.BatteryViewBinder", lpparam.classLoader);
+
+ hookAllMethods(BatteryViewBinder, "bind$initView", new XC_MethodHook() {
+
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ /*
+ stock method
+ public static final void bind$initView(
+ 0 TextView textView,
+ 1 TextView textView2,
+ 2 StatBatteryMeterView statBatteryMeterView,
+ 3 ImageView imageView,
+ 4 ImageView imageView2,
+ 5 ProgressBar progressBar,
+ 6 ImageView imageView3,
+ 7 TwoBatteryDashChargeView twoBatteryDashChargeView,
+ 8 StatBatteryIcon statBatteryIcon) {
+ */
+
+ // No need to call BatteryDataProvider or BroadcastReceiver
+ // since battery view is updated automatically
+
+
+ mIsCharging = isCharging();
+ boolean isCharging = false;
+
+ batteryPercentInView = (TextView) param.args[0];
+ batteryPercentOutView = (TextView) param.args[1];
+ Object statBatteryIcon = param.args[8];
+
+ // Fix Charging if Battery Data Provider is not ready
+ if (statBatteryIcon != null) {
+ try {
+ isCharging = (boolean) callMethod(statBatteryIcon, "getCharging");
+ } catch (Throwable t) {
+ isCharging = mIsCharging;
+ }
+ }
+
+
+ if (CustomBatteryEnabled) {
+ batteryPercentInView.setVisibility(View.GONE);
+ if (mHidePercentage)
+ batteryPercentOutView.setVisibility(View.GONE);
+ else {
+ batteryPercentOutView.setVisibility(View.VISIBLE);
+ }
+ BatteryDrawable mBatteryDrawable = getNewBatteryDrawable(mContext);
+ if (mBatteryDrawable == null) return;
+ LinearLayout statBatteryMeterView = (LinearLayout) param.args[2];
+ ImageView batteryIcon = (ImageView) param.args[3];
+ mBatteryIcon = (ImageView) param.args[6];
+ ImageView stdBatt = (ImageView) param.args[4];
+ mBatteryIcon.setScaleType(stdBatt.getScaleType());
+ if (mBatteryDrawable != null) {
+ if (statBatteryIcon != null) {
+ int batteryLevel = ((int) callMethod(statBatteryIcon, "getPowerLevel"));
+ mBatteryDrawable.setBatteryLevel(batteryLevel);
+ } else {
+ mBatteryDrawable.setBatteryLevel(getCurrentLevel());
+ }
+ mBatteryDrawable.setChargingEnabled(mIsCharging, isFastCharging());
+ mBatteryDrawable.setPowerSavingEnabled(isPowerSaving());
+ mBatteryDrawable.setShowPercentEnabled(mShowPercentInside);
+ mBatteryDrawable.setAlpha(Math.round(BatteryIconOpacity * 2.55f));
+ mBatteryDrawable.setColors(frameColor, backgroundColor, singleToneColor);
+ mBatteryDrawable.customizeBatteryDrawable(
+ mBatteryLayoutReverse,
+ mScaledPerimeterAlpha,
+ mScaledFillAlpha,
+ mCustomBlendColor,
+ mRainbowFillColor,
+ mCustomFillColor,
+ mCustomFillGradColor,
+ mCustomBlendColor ? mCustomChargingColor : getChargingColor(mCustomChargingColor),
+ mCustomBlendColor ? mCustomFastChargingColor : getChargingColor(mCustomFastChargingColor),
+ mCustomPowerSaveColor,
+ mCustomPowerSaveFillColor,
+ mChargingIconSwitch
+ );
+ mBatteryIcon.setImageDrawable(mBatteryDrawable);
+
+ }
+
+ batteryIcon.setVisibility(View.GONE);
+
+ scaleBatteryMeterViews(mBatteryIcon);
+ updateBatteryRotation(mBatteryIcon);
+ updateFlipper(mBatteryIcon.getParent());
+ ProgressBar progress = (ProgressBar) param.args[5];
+ progress.setProgress(0);
+ progress.setVisibility(View.GONE);
+ } else {
+ batteryPercentOutView.setVisibility(View.VISIBLE);
+ if (customizePercSize) {
+ batteryPercentOutView.setTextSize(TypedValue.COMPLEX_UNIT_SP, mBatteryPercSize);
+ }
+ }
+
+
+ if (mChargingIconSwitch) {
+ mStockChargingIcon = (ImageView) param.args[7];
+ if (isCharging) {
+ mStockChargingIcon.setVisibility(View.VISIBLE);
+ if (mChargingIconSwitch) {
+ mStockChargingIcon.setImageDrawable(getNewChargingIcon());
+ int left = dp2px(mContext, mChargingIconML);
+ int right = dp2px(mContext, mChargingIconMR);
+ int size = dp2px(mContext, mChargingIconWH);
+
+ LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(size, size);
+ lp.setMargins(left, 0, right, mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("battery_margin_bottom", "dimen", mContext.getPackageName())));
+ mStockChargingIcon.setLayoutParams(lp);
+ }
+ }
+ }
+ }
+ });
+ }
+
+ private BatteryDrawable getNewBatteryDrawable(Context context) {
+ BatteryDrawable mBatteryDrawable = switch (BatteryStyle) {
+ case BATTERY_STYLE_CUSTOM_RLANDSCAPE -> new RLandscapeBattery(context, frameColor, true);
+ case BATTERY_STYLE_CUSTOM_LANDSCAPE -> new LandscapeBattery(context, frameColor, true);
+ case BATTERY_STYLE_PORTRAIT_CAPSULE -> new PortraitBatteryCapsule(context, frameColor, true);
+ case BATTERY_STYLE_PORTRAIT_LORN -> new PortraitBatteryLorn(context, frameColor, true);
+ case BATTERY_STYLE_PORTRAIT_MX -> new PortraitBatteryMx(context, frameColor, true);
+ case BATTERY_STYLE_PORTRAIT_AIROO -> new PortraitBatteryAiroo(context, frameColor, true);
+ case BATTERY_STYLE_RLANDSCAPE_STYLE_A ->
+ new RLandscapeBatteryStyleA(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_STYLE_A -> new LandscapeBatteryStyleA(context, frameColor, true);
+ case BATTERY_STYLE_RLANDSCAPE_STYLE_B ->
+ new RLandscapeBatteryStyleB(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_STYLE_B -> new LandscapeBatteryStyleB(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_IOS_15 -> new LandscapeBatteryiOS15(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_IOS_16 -> new LandscapeBatteryiOS16(context, frameColor, true);
+ case BATTERY_STYLE_PORTRAIT_ORIGAMI -> new PortraitBatteryOrigami(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_SMILEY -> new LandscapeBatterySmiley(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_MIUI_PILL ->
+ new LandscapeBatteryMIUIPill(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_COLOROS ->
+ new LandscapeBatteryColorOS(context, frameColor, true);
+ case BATTERY_STYLE_RLANDSCAPE_COLOROS ->
+ new RLandscapeBatteryColorOS(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYA -> new LandscapeBatteryA(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYB -> new LandscapeBatteryB(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYC -> new LandscapeBatteryC(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYD -> new LandscapeBatteryD(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYE -> new LandscapeBatteryE(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYF -> new LandscapeBatteryF(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYG -> new LandscapeBatteryG(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYH -> new LandscapeBatteryH(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYI -> new LandscapeBatteryI(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYJ -> new LandscapeBatteryJ(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYK -> new LandscapeBatteryK(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYL -> new LandscapeBatteryL(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYM -> new LandscapeBatteryM(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYN -> new LandscapeBatteryN(context, frameColor, true);
+ case BATTERY_STYLE_LANDSCAPE_BATTERYO -> new LandscapeBatteryO(context, frameColor, true);
+ case BATTERY_STYLE_CIRCLE, BATTERY_STYLE_DOTTED_CIRCLE ->
+ new CircleBattery(context, frameColor, true);
+ default -> null;
+ };
+
+ if (mBatteryDrawable != null) {
+ mBatteryDrawable.setShowPercentEnabled(mShowPercentInside);
+ mBatteryDrawable.setAlpha(Math.round(BatteryIconOpacity * 2.55f));
+ mBatteryDrawable.setColors(frameColor, backgroundColor, singleToneColor);
+ }
+
+ return mBatteryDrawable;
+ }
+
+ private Drawable getNewChargingIcon() {
+ return switch (mChargingIconStyle) {
+ case 0 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_bold, mContext.getTheme());
+ case 1 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_asus, mContext.getTheme());
+ case 2 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_buddy, mContext.getTheme());
+ case 3 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_evplug, mContext.getTheme());
+ case 4 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_idc, mContext.getTheme());
+ case 5 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_ios, mContext.getTheme());
+ case 6 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_koplak, mContext.getTheme());
+ case 7 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_miui, mContext.getTheme());
+ case 8 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_mmk, mContext.getTheme());
+ case 9 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_moto, mContext.getTheme());
+ case 10 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_nokia, mContext.getTheme());
+ case 11 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_plug, mContext.getTheme());
+ case 12 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_powercable, mContext.getTheme());
+ case 13 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_powercord, mContext.getTheme());
+ case 14 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_powerstation, mContext.getTheme());
+ case 15 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_realme, mContext.getTheme());
+ case 16 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_soak, mContext.getTheme());
+ case 17 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_stres, mContext.getTheme());
+ case 18 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_strip, mContext.getTheme());
+ case 19 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_usbcable, mContext.getTheme());
+ case 20 ->
+ ResourcesCompat.getDrawable(modRes, R.drawable.ic_charging_xiaomi, mContext.getTheme());
+ default -> null;
+ };
+ }
+
+ public static void scaleBatteryMeterViews(@Nullable ImageView mBatteryIconView) {
+ if (mBatteryIconView == null) {
+ return;
+ }
+
+ try {
+ Context context = mBatteryIconView.getContext();
+ Resources res = context.getResources();
+
+ TypedValue typedValue = new TypedValue();
+
+ res.getValue(res.getIdentifier("status_bar_icon_scale_factor", "dimen", context.getPackageName()), typedValue, true);
+ float iconScaleFactor = typedValue.getFloat();
+
+ int batteryWidth = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, mBatteryScaleWidth, mBatteryIconView.getContext().getResources().getDisplayMetrics());
+ int batteryHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, mBatteryScaleHeight, mBatteryIconView.getContext().getResources().getDisplayMetrics());
+
+ LinearLayout.LayoutParams scaledLayoutParams = (LinearLayout.LayoutParams) mBatteryIconView.getLayoutParams();
+ scaledLayoutParams.width = (int) (batteryWidth * iconScaleFactor);
+ scaledLayoutParams.height = (int) (batteryHeight * iconScaleFactor);
+ if (mBatteryCustomDimension) {
+ scaledLayoutParams.setMargins(mBatteryMarginLeft, mBatteryMarginTop, mBatteryMarginRight, mBatteryMarginBottom);
+ } else {
+ scaledLayoutParams.setMargins(mBatteryStockMarginLeft, 0, mBatteryStockMarginRight, context.getResources().getDimensionPixelOffset(context.getResources().getIdentifier("battery_margin_bottom", "dimen", context.getPackageName())));
+ }
+
+ mBatteryIconView.setLayoutParams(scaledLayoutParams);
+ mBatteryIconView.setVisibility(mHideBattery ? View.GONE : View.VISIBLE);
+ } catch (Throwable throwable) {
+ log(TAG + throwable);
+ }
+ }
+
+ private void updateFlipper(Object thisObject) {
+ LinearLayout batteryView = (LinearLayout) thisObject;
+ batteryView.setOrientation(LinearLayout.HORIZONTAL);
+ batteryView.setGravity(Gravity.CENTER_VERTICAL | Gravity.START);
+ batteryView.setLayoutDirection(mSwapPercentage ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
+ }
+
+ private void notifyUpdate() {
+ new Thread(() -> {
+ try {
+ while (updating) {
+ Thread.currentThread().wait(500);
+ }
+ updating = true;
+ int currentStyle = 3;
+ try {
+ currentStyle = Integer.parseInt(ShellUtils.execCommand("settings get system display_battery_style", true).successMsg);
+ } catch (Throwable ignored) {}
+ ShellUtils.execCommand("settings put system display_battery_style 2", true);
+ Thread.sleep(750);
+ ShellUtils.execCommand("settings put system display_battery_style " + currentStyle, true);
+
+ Thread.sleep(500);
+ updating = false;
+ } catch (Exception ignored) {
+ }
+ }).start();
+ }
+
+ private void updateBatteryRotation(View mBatteryIconView) {
+ mBatteryIconView.setRotation(!DefaultLandscapeBatteryEnabled && mBatteryLayoutReverse ? 180 : mBatteryRotation);
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
+
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/HeaderClock.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/HeaderClock.java
new file mode 100644
index 000000000..7a057ddab
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/HeaderClock.java
@@ -0,0 +1,783 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.findClassIfExists;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.CLOCK_TAG;
+import static it.dhd.oxygencustomizer.utils.Constants.DATE_TAG;
+import static it.dhd.oxygencustomizer.utils.Constants.HEADER_CLOCK_LAYOUT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CHIP_PREFS;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_COLOR_CODE_ACCENT1;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_COLOR_CODE_ACCENT2;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_COLOR_CODE_ACCENT3;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_COLOR_CODE_TEXT1;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_COLOR_CODE_TEXT2;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_CUSTOM_COLOR_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_CUSTOM_ENABLED;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_CUSTOM_FONT;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_CUSTOM_VALUE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_LEFT_MARGIN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP_SWITCH;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_HIDE_CARRIER;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_RED_MODE;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_RED_MODE_COLOR;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_TEXT_SCALING;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_TOP_MARGIN;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_PREFS;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getRoundedCorners;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getStrokeWidth;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getStyle;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils.getPrimaryColor;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.getColorResCompat;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.ForegroundColorSpan;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.Interpolator;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.core.content.ContextCompat;
+import androidx.core.text.TextUtilsCompat;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.util.Locale;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.utils.AppUtils;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock;
+import it.dhd.oxygencustomizer.utils.TextUtil;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.utils.ViewHelper;
+
+public class HeaderClock extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ public static final String OC_HEADER_CLOCK_TAG = "oxygencustomizer_header_clock";
+ private final String TAG = "HeaderClock: ";
+
+ private Context appContext;
+ private UserManager mUserManager;
+
+ LinearLayout mQsClockContainer = new LinearLayout(mContext);
+ private TextView mOplusClock = null;
+ private TextView mOplusDate = null;
+ private TextView mOplusCarrier = null;
+
+ // Custom Clock Prefs
+ private boolean showHeaderClock;
+ private int clockStyle;
+
+ private boolean centeredClockView;
+
+ // Stock Clock Prefs
+ private int stockClockRedStyle;
+ private int stockClockRedOverrideColor;
+ private boolean stockClockTimeColorSwitch;
+ private int stockClockTimeColor;
+ private boolean stockClockHideDate;
+ private boolean stockClockDateColorSwitch;
+ private int stockClockDateColor;
+ private boolean stockClockTimeBackgroundChip, stockClockDateBackgroundChip;
+ private boolean stockClockHideCarrier;
+
+ // Clock Chip Style
+ private int stockClockTimeBackgroundChipStyle;
+ private boolean stockClockUseAccent, stockClockDateUseAccent;
+ private int stockClockStrokeWidth, stockDateStrokeWidth;
+ private boolean clockRoundCorners, dateRoundCorners;
+ private int clockTopSxRound, clockTopDxRound, clockBottomSxRound,clockBottomDxRound;
+ private int dateTopSxRound, dateTopDxRound, dateBottomSxRound, dateBottomDxRound;
+ private int stockClockTimeChipGradient1, stockClockTimeChipGradient2, stockClockDateChipGradient1, stockClockDateChipGradient2;
+ private boolean stockClockTimeChipGradient, stockClockDateChipGradient;
+ private boolean customFontEnabled;
+ private int stockClockTimeChipOrientation;
+
+ private int stockClockDateBackgroundChipStyle;
+ private int mAccent;
+ private GradientDrawable mClockChipDrawale;
+ private GradientDrawable mDateChipDrawale;
+ private Typeface mStockClockTypeface, mStockDateTypeface;
+ private Object OQC = null;
+ private Object mActivityStarter = null;
+ final ClickListener clickListener = new ClickListener();
+
+
+ public HeaderClock(Context context) {
+ super(context);
+
+ try {
+ appContext = context.createPackageContext(
+ BuildConfig.APPLICATION_ID,
+ Context.CONTEXT_IGNORE_SECURITY
+ );
+ } catch (PackageManager.NameNotFoundException ignored) {
+ }
+
+ mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ // Custom Header Prefs
+ showHeaderClock = Xprefs.getBoolean(QS_HEADER_CLOCK_CUSTOM_ENABLED, false);
+ clockStyle = Xprefs.getInt(QS_HEADER_CLOCK_CUSTOM_VALUE, 0);
+ centeredClockView = Xprefs.getBoolean("center_clock", false);
+
+ // Stock Header Prefs
+ stockClockRedStyle = Integer.parseInt(Xprefs.getString(QS_HEADER_CLOCK_STOCK_RED_MODE, "0"));
+ stockClockRedOverrideColor = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_RED_MODE_COLOR, Color.RED);
+ stockClockTimeColorSwitch = Xprefs.getBoolean(QsHeaderClock.QS_HEADER_CLOCK_STOCK_TIME_COLOR_SWITCH, false);
+ stockClockTimeColor = Xprefs.getInt(QsHeaderClock.QS_HEADER_CLOCK_STOCK_TIME_COLOR, 0);
+ stockClockHideDate = Xprefs.getBoolean(QsHeaderClock.QS_HEADER_CLOCK_STOCK_HIDE_DATE, false);
+ stockClockDateColorSwitch = Xprefs.getBoolean(QsHeaderClock.QS_HEADER_CLOCK_STOCK_DATE_COLOR_SWITCH, false);
+ stockClockDateColor = Xprefs.getInt(QsHeaderClock.QS_HEADER_CLOCK_STOCK_DATE_COLOR, 0);
+ stockClockTimeBackgroundChip = Xprefs.getBoolean(QsHeaderClock.QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP_SWITCH, false);
+ stockClockTimeBackgroundChipStyle = Xprefs.getInt(getStyle(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP), 0);
+ stockClockDateBackgroundChip = Xprefs.getBoolean(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP_SWITCH, false);
+ stockClockDateBackgroundChipStyle = Xprefs.getInt(getStyle(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP), 0);
+ stockClockHideCarrier = Xprefs.getBoolean(QS_HEADER_CLOCK_STOCK_HIDE_CARRIER, false);
+
+ // Font pref
+ customFontEnabled = Xprefs.getBoolean(QS_HEADER_CLOCK_CUSTOM_FONT, false);
+
+ // gradients prefs
+ stockClockUseAccent = Xprefs.getBoolean(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP + "_USE_ACCENT_COLOR", true);
+ stockClockTimeChipGradient = Xprefs.getBoolean(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP + "_USE_GRADIENT", false);
+ stockClockTimeChipGradient1 = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP + "_GRADIENT_1", mAccent);
+ stockClockTimeChipGradient2 = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP + "_GRADIENT_2", mAccent);
+ stockClockStrokeWidth = Xprefs.getInt(getStrokeWidth(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP), 10);
+ clockRoundCorners = Xprefs.getBoolean(getRoundedCorners(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP), true);
+ clockTopSxRound = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP + "_TOP_LEFT_RADIUS", 28);
+ clockTopDxRound = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP + "_TOP_RIGHT_RADIUS", 28);
+ clockBottomSxRound = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP + "_BOTTOM_LEFT_RADIUS", 28);
+ clockBottomDxRound = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP + "_BOTTOM_RIGHT_RADIUS", 28);
+
+ stockClockDateUseAccent = Xprefs.getBoolean(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP + "_USE_ACCENT_COLOR", true);
+ stockClockDateChipGradient = Xprefs.getBoolean(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP + "_USE_GRADIENT", false);
+ stockClockDateChipGradient1 = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP + "_GRADIENT_1", mAccent);
+ stockClockDateChipGradient2 = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP + "_GRADIENT_2", mAccent);
+ stockDateStrokeWidth = Xprefs.getInt(getStrokeWidth(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP), 10);
+ dateRoundCorners = Xprefs.getBoolean(getRoundedCorners(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP), true);
+ dateTopSxRound = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP + "_TOP_LEFT_RADIUS", 28);
+ dateTopDxRound = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP + "_TOP_RIGHT_RADIUS", 28);
+ dateBottomSxRound = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP + "_BOTTOM_LEFT_RADIUS", 28);
+ dateBottomDxRound = Xprefs.getInt(QS_HEADER_CLOCK_STOCK_DATE_BACKGROUND_CHIP + "_BOTTOM_RIGHT_RADIUS", 28);
+
+
+ if (Key.length > 0){
+ if (Key[0].equals(QS_HEADER_CLOCK_STOCK_RED_MODE)
+ || Key[0].equals(QS_HEADER_CLOCK_STOCK_RED_MODE_COLOR)
+ || Key[0].equals(QS_HEADER_CLOCK_CUSTOM_ENABLED)) {
+ callMethod(OQC, "updateClock");
+ }
+ for(String k : QS_HEADER_PREFS) {
+ if (Key[0].equals(k)) {
+ updateStockPrefs();
+ updateClockView();
+ }
+ }
+ for (String k : QS_HEADER_CHIP_PREFS) {
+ if (Key[0].equals(k)) {
+ updateChips();
+ }
+ }
+ }
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ final Class> QuickStatusBarHeader = findClass("com.oplus.systemui.qs.OplusQuickStatusBarHeader", lpparam.classLoader);
+
+ mClockChipDrawale = new GradientDrawable();
+ mDateChipDrawale = new GradientDrawable();
+
+ Class> Clock = findClass("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader);
+ hookAllConstructors(Clock, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ OQC = param.thisObject;
+ }
+ });
+
+ //OplusQSFooterImpl
+ Class> OplusQSFooterImpl = findClass("com.oplus.systemui.qs.OplusQSFooterImpl", lpparam.classLoader);
+ hookAllMethods(OplusQSFooterImpl, "onFinishInflate", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+
+ FrameLayout mQuickStatusBarHeader = (FrameLayout) param.thisObject;//getObjectField(param.thisObject, "mSettingsContainer");
+
+ // qs_footer_side_padding
+ int dimen = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("qs_footer_side_padding", "dimen", listenPackage));
+ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+ mQsClockContainer.setLayoutParams(layoutParams);
+ mQsClockContainer.setPaddingRelative(0, -10, 0, 0);
+ mQsClockContainer.setGravity(Gravity.CENTER_VERTICAL | Gravity.START);
+ mQsClockContainer.setVisibility(View.GONE);
+
+ if (mQsClockContainer.getParent() != null) {
+ ((ViewGroup) mQsClockContainer.getParent()).removeView(mQsClockContainer);
+ }
+
+ mQuickStatusBarHeader.addView(mQsClockContainer, mQuickStatusBarHeader.getChildCount());
+ //((ViewGroup) mSettingsContainer).addView(mQsClockContainer, ((ViewGroup) mSettingsContainer).getChildCount() - 1);
+
+ // Hide stock clock, date and carrier group
+ try {
+ mOplusDate = (TextView) getObjectField(param.thisObject, "mQsDateView");
+ mStockDateTypeface = mOplusDate.getTypeface();
+ } catch (Throwable ignored) {
+ }
+
+ try {
+ mOplusClock = (TextView) getObjectField(param.thisObject, "mClockView");
+ mStockClockTypeface = mOplusClock.getTypeface();
+ } catch (Throwable ignored) {
+ }
+
+ try {
+ mOplusCarrier = (TextView) getObjectField(param.thisObject, "mOplusQSCarrier");
+ } catch (Throwable ignored) {
+ }
+
+ updateStockPrefs();
+ updateClockView();
+ }
+ });
+
+ Class> QsFragmentHelper = findClass("com.oplus.systemui.qs.helper.QSFragmentHelper", lpparam.classLoader);
+
+ hookAllMethods(QsFragmentHelper, "onFractionUpdated", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ if (!showHeaderClock) return;
+
+ float f = (float) param.args[0];
+ Interpolator mAlphaAnimInterpolator = (Interpolator) getObjectField(param.thisObject, "mAlphaAnimInterpolator");
+ Interpolator mQsCoveredInterpolator = (Interpolator) getObjectField(param.thisObject, "mQsCoveredInterpolator");
+ float interpolation = mQsCoveredInterpolator.getInterpolation(f) * 833.0f;
+ float interpolation5 = mAlphaAnimInterpolator.getInterpolation(Math.min(interpolation / 500.0f, 1.0f));
+ float f3 = 1.0f - interpolation5;
+
+ mQsClockContainer.setAlpha(f3);
+ }
+ });
+
+ Class> OplusClockExImpl = findClass("com.oplus.systemui.common.clock.OplusClockExImpl", lpparam.classLoader);
+ hookAllMethods(OplusClockExImpl, "setTextWithRedOneStyleInternal", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) {
+ //log("setTextWithRedOneStyleInternal BEFORE");
+ //log("showHeaderClock: " + showHeaderClock + " stockClockRedStyle: " + stockClockRedStyle + " stockClockRedOverrideColor: " + stockClockRedOverrideColor + " param: " + (showHeaderClock || stockClockRedStyle == 1));
+ if (showHeaderClock || stockClockRedStyle == 1 ) {
+ param.setResult(null);
+ return;
+ }
+
+ if (stockClockRedStyle == 2 || stockClockRedStyle == 3) {
+ CharSequence charSequence = (CharSequence) param.args[1];
+ TextView textView = (TextView) param.args[0];
+ StringBuilder sb = new StringBuilder(charSequence);
+ int length = sb.length();
+ for (int i = 0; i < length; i++) {
+ char c = sb.charAt(i);
+ if (c == ':') {
+ sb.replace(i, i + 1, "\u200e∶");
+ break;
+ }
+ }
+
+ int mColorAccent = getPrimaryColor(mContext);
+ int colorToApply = stockClockRedStyle == 2 ? mColorAccent : stockClockRedOverrideColor;
+ SpannableString spannableString = new SpannableString(sb);
+ for (int i = 0; i < 2 && i < length; i++) {
+ if (sb.charAt(i) == '1') {
+ spannableString.setSpan(new ForegroundColorSpan(colorToApply), i, i + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ }
+ }
+ textView.setText(spannableString, TextView.BufferType.SPANNABLE);
+ param.setResult(null);
+ }
+ }
+ });
+
+ /*hookAllMethods(OplusQSFooterImpl, "updateQsClockView", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ log("updateQsClockView");
+ boolean z;
+ ConstraintSet set = new ConstraintSet();
+ set.setTranslation(mQsClockContainer.getId(), 10f, 10f);
+ set.applyTo((ConstraintLayout) mQsClockContainer.getParent());
+ //z = ConstraintSetExt.updateScaleY(this.mTmpConstraintSet, this.mClockView.getId(), 1.0f) | ConstraintSetExt.updateTranslationX(this.mTmpConstraintSet, this.mClockView.getId(), 0.0f) | false | ConstraintSetExt.updateTranslationY(this.mTmpConstraintSet, this.mClockView.getId(), 0.0f) | ConstraintSetExt.updateScaleX(this.mTmpConstraintSet, this.mClockView.getId(), 1.0f);
+ }
+ });*/
+
+ hookAllMethods(QuickStatusBarHeader, "updateResources", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ updateClockView();
+ }
+ });
+
+ try {
+ Class> ShadeHeaderControllerClass = findClassIfExists("com.android.systemui.shade.LargeScreenShadeHeaderController", lpparam.classLoader);
+ if (ShadeHeaderControllerClass == null)
+ ShadeHeaderControllerClass = findClass("com.android.systemui.shade.ShadeHeaderController", lpparam.classLoader);
+
+ hookAllMethods(ShadeHeaderControllerClass, "onInit", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ if (!showHeaderClock) return;
+
+ try {
+ TextView clock = (TextView) getObjectField(param.thisObject, "clock");
+ ((ViewGroup) clock.getParent()).removeView(clock);
+ } catch (Throwable ignored) {
+ }
+
+ try {
+ TextView date = (TextView) getObjectField(param.thisObject, "date");
+ ((ViewGroup) date.getParent()).removeView(date);
+ } catch (Throwable ignored) {
+ }
+
+ try {
+ LinearLayout qsCarrierGroup = (LinearLayout) getObjectField(param.thisObject, "qsCarrierGroup");
+ ((ViewGroup) qsCarrierGroup.getParent()).removeView(qsCarrierGroup);
+ } catch (Throwable ignored) {
+ }
+ }
+ });
+ } catch (Throwable ignored) {
+ }
+
+
+ Class> QSSecurityFooterUtilsClass = findClass("com.android.systemui.qs.QSSecurityFooterUtils", lpparam.classLoader);
+ hookAllConstructors(QSSecurityFooterUtilsClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mActivityStarter = getObjectField(param.thisObject, "mActivityStarter");
+ }
+ });
+
+
+ try {
+ ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
+ executor.scheduleAtFixedRate(() -> {
+ File Android = new File(Environment.getExternalStorageDirectory() + "/Android");
+
+ if (Android.isDirectory()) {
+ updateClockView();
+ executor.shutdown();
+ executor.shutdownNow();
+ }
+ }, 0, 5, TimeUnit.SECONDS);
+ } catch (Throwable ignored) {
+ }
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+
+ private void updateChips() {
+
+ mAccent = getPrimaryColor(mContext);
+ mClockChipDrawale.setShape(GradientDrawable.RECTANGLE);
+ mClockChipDrawale.setGradientType(GradientDrawable.LINEAR_GRADIENT);
+ mClockChipDrawale.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
+ if (clockRoundCorners) {
+ mClockChipDrawale.setCornerRadii(new float[]{
+ dp2px(mContext, clockTopSxRound), dp2px(mContext, clockTopSxRound),
+ dp2px(mContext, clockTopDxRound), dp2px(mContext, clockTopDxRound),
+ dp2px(mContext, clockBottomSxRound), dp2px(mContext, clockBottomSxRound),
+ dp2px(mContext, clockBottomDxRound), dp2px(mContext, clockBottomDxRound)
+ });
+ } else {
+ mClockChipDrawale.setCornerRadius(0);
+ }
+ mClockChipDrawale.setPadding(20, 0, 20, 0);
+ if (stockClockTimeBackgroundChipStyle == 0) {
+ if (stockClockUseAccent)
+ mClockChipDrawale.setColors(new int[]{mAccent, mAccent});
+ else if (stockClockTimeChipGradient)
+ mClockChipDrawale.setColors(new int[]{stockClockTimeChipGradient1, stockClockTimeChipGradient2});
+ else
+ mClockChipDrawale.setColors(new int[]{stockClockTimeChipGradient1, stockClockTimeChipGradient1});
+ mClockChipDrawale.setStroke(0, Color.TRANSPARENT);
+ } else {
+ mClockChipDrawale.setColors(new int[]{Color.TRANSPARENT, Color.TRANSPARENT});
+ mClockChipDrawale.setStroke(stockClockStrokeWidth, stockClockUseAccent ? mAccent : stockClockTimeChipGradient1);
+ }
+ GradientDrawable.Orientation orientation = switch (stockClockTimeChipOrientation) {
+ case 1 -> GradientDrawable.Orientation.RIGHT_LEFT;
+ case 2 -> GradientDrawable.Orientation.TOP_BOTTOM;
+ case 3 -> GradientDrawable.Orientation.BOTTOM_TOP;
+ default -> GradientDrawable.Orientation.LEFT_RIGHT;
+ };
+ mClockChipDrawale.invalidateSelf();
+
+ mDateChipDrawale.setShape(GradientDrawable.RECTANGLE);
+ mDateChipDrawale.setGradientType(GradientDrawable.LINEAR_GRADIENT);
+ mDateChipDrawale.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
+ if (dateRoundCorners) {
+ mDateChipDrawale.setCornerRadii(new float[]{
+ dp2px(mContext, dateTopSxRound), dp2px(mContext, dateTopSxRound),
+ dp2px(mContext, dateTopDxRound), dp2px(mContext, dateTopDxRound),
+ dp2px(mContext, dateBottomSxRound), dp2px(mContext, dateBottomSxRound),
+ dp2px(mContext, dateBottomDxRound), dp2px(mContext, dateBottomDxRound)
+ });
+ } else {
+ mDateChipDrawale.setCornerRadius(0);
+ }
+
+ mDateChipDrawale.setPadding(20, 0, 20, 0);
+ if (stockClockDateBackgroundChipStyle == 0) {
+ if (stockClockDateUseAccent)
+ mDateChipDrawale.setColors(new int[]{mAccent, mAccent});
+ else if (stockClockDateChipGradient)
+ mDateChipDrawale.setColors(new int[]{stockClockDateChipGradient1, stockClockDateChipGradient2});
+ else
+ mDateChipDrawale.setColors(new int[]{stockClockDateChipGradient1, stockClockDateChipGradient1});
+ mDateChipDrawale.setStroke(0, Color.TRANSPARENT);
+ } else {
+ mDateChipDrawale.setColors(new int[]{Color.TRANSPARENT, Color.TRANSPARENT});
+ mDateChipDrawale.setStroke(stockDateStrokeWidth, stockClockDateUseAccent ? mAccent : stockClockDateChipGradient1);
+ }
+ mDateChipDrawale.invalidateSelf();
+ }
+
+ private void hideView(TextView textView) {
+ if (textView == null) return;
+ try {
+ if (textView.getVisibility() != View.VISIBLE) return;
+ textView.setVisibility(View.INVISIBLE);
+ textView.setTextColor(Color.TRANSPARENT);
+ } catch (Throwable ignored) {
+ }
+ }
+
+ private void showView(TextView textView) {
+ try {
+ if (textView.getVisibility() == View.VISIBLE) return;
+ textView.setVisibility(View.VISIBLE);
+ textView.setTextColor(Color.WHITE);
+ } catch (Throwable t) {
+ log(TAG + "showView: " + t.getMessage());
+ }
+ }
+
+ private void updateStockPrefs() {
+ // Custom clock visible so hide stock clock
+ if (showHeaderClock) {
+ hideView(mOplusDate);
+ hideView(mOplusClock);
+ hideView(mOplusCarrier);
+ return;
+ } else {
+ showView(mOplusDate);
+ showView(mOplusClock);
+ showView(mOplusCarrier);
+ }
+
+ if (customFontEnabled) {
+ Typeface typeface = null;
+ String customFontFile = Environment.getExternalStorageDirectory() + "/.oxygen_files/headerclock_font.ttf";
+ if ((new File(customFontFile).exists()))
+ typeface = Typeface.createFromFile(new File(customFontFile));
+ mOplusClock.setTypeface(typeface);
+ mOplusDate.setTypeface(typeface);
+ } else {
+ if (mStockClockTypeface != null)
+ mOplusClock.setTypeface(mStockClockTypeface);
+ if (mStockDateTypeface != null)
+ mOplusDate.setTypeface(mStockDateTypeface);
+ }
+
+ // Stock clock hide date
+ if (stockClockHideDate) {
+ hideView(mOplusDate);
+ } else {
+ showView(mOplusDate);
+ }
+
+ if (stockClockHideCarrier || showHeaderClock) {
+ hideView(mOplusCarrier);
+ } else {
+ showView(mOplusCarrier);
+ }
+
+ setupStockColors();
+
+ }
+
+ private void setupStockColors() {
+ if (stockClockTimeBackgroundChip) {
+ mOplusClock.setBackground(mClockChipDrawale);
+ } else {
+ removeChip(mOplusClock);
+ }
+ if (!stockClockHideDate && stockClockDateBackgroundChip) {
+ mOplusDate.setBackground(mDateChipDrawale);
+ } else {
+ removeChip(mOplusDate);
+ }
+ if (stockClockTimeColorSwitch) {
+ mOplusClock.setTextColor(stockClockTimeColor);
+ } else {
+ mOplusClock.setTextColor(Color.WHITE);
+ }
+ if (!stockClockHideDate && stockClockDateColorSwitch) {
+ mOplusDate.setTextColor(stockClockDateColor);
+ } else if (!stockClockHideDate && !stockClockDateColorSwitch) {
+ mOplusDate.setTextColor(Color.WHITE);
+ }
+
+ }
+
+ private void removeChip(TextView textView) {
+ try {
+ textView.setBackground(null);
+ } catch (Throwable t) {
+ log(TAG + "removeChip: " + t.getMessage());
+ }
+ }
+
+ private void updateClockView() {
+ if (mQsClockContainer == null) return;
+
+ if (!showHeaderClock) {
+ mQsClockContainer.setVisibility(View.GONE);
+ return;
+ }
+
+ View clockView = getClockView();
+
+ if (mQsClockContainer.findViewWithTag(OC_HEADER_CLOCK_TAG) != null) {
+ mQsClockContainer.removeView(mQsClockContainer.findViewWithTag(OC_HEADER_CLOCK_TAG));
+ }
+
+ if (clockView != null) {
+ if (centeredClockView) {
+ mQsClockContainer.setGravity(Gravity.CENTER);
+ } else {
+ mQsClockContainer.setGravity(Gravity.START);
+ }
+ clockView.setTag(OC_HEADER_CLOCK_TAG);
+
+ TextUtil.convertTextViewsToTitleCase((ViewGroup) clockView);
+
+ mQsClockContainer.addView(clockView);
+ modifyClockView(clockView);
+ }
+
+ try {
+ setOnClickListener(mQsClockContainer);
+ } catch (Throwable ignored) {
+ }
+
+ mQsClockContainer.setVisibility(View.VISIBLE);
+ mQsClockContainer.setAlpha(1.0f);
+
+ //hideView(mOplusCarrier);
+ }
+
+ private void setOnClickListener(View view) {
+ if (view == null) return;
+
+ if (view instanceof ViewGroup) {
+ for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
+ View child = ((ViewGroup) view).getChildAt(i);
+ String tag = child.getTag() == null ? "" : child.getTag().toString();
+
+ if (tag.toLowerCase(Locale.getDefault()).contains("clock") ||
+ tag.toLowerCase(Locale.getDefault()).contains("date")) {
+ child.setOnClickListener(clickListener);
+ }
+
+ if (child instanceof ViewGroup) {
+ setOnClickListener(child);
+ }
+ }
+ } else {
+ String tag = view.getTag() == null ? "" : view.getTag().toString();
+
+ if (tag.toLowerCase(Locale.getDefault()).contains("clock") ||
+ tag.toLowerCase(Locale.getDefault()).contains("date")) {
+ view.setOnClickListener(clickListener);
+ }
+ }
+ }
+
+ private void modifyClockView(View clockView) {
+ float clockScale = Xprefs.getSliderFloat(QS_HEADER_CLOCK_TEXT_SCALING, 1.0f);
+ int sideMargin = Xprefs.getSliderInt(QS_HEADER_CLOCK_LEFT_MARGIN, 0);
+ int topMargin = Xprefs.getSliderInt(QS_HEADER_CLOCK_TOP_MARGIN, 8);
+ String customFont = Environment.getExternalStorageDirectory() + "/.oxygencustomizer_files/headerclock_font.ttf";
+ int mAccent = getPrimaryColor(mContext);
+ boolean customColor = Xprefs.getBoolean(QS_HEADER_CLOCK_CUSTOM_COLOR_SWITCH, false);
+
+ int accent1 = Xprefs.getInt(
+ QS_HEADER_CLOCK_COLOR_CODE_ACCENT1,
+ mAccent
+ );
+ int accent2 = Xprefs.getInt(
+ QS_HEADER_CLOCK_COLOR_CODE_ACCENT2,
+ ContextCompat.getColor(mContext, android.R.color.system_accent2_600)
+ );
+ int accent3 = Xprefs.getInt(
+ QS_HEADER_CLOCK_COLOR_CODE_ACCENT3,
+ ContextCompat.getColor(mContext, android.R.color.system_accent3_600)
+ );
+ int textPrimary = Xprefs.getInt(
+ QS_HEADER_CLOCK_COLOR_CODE_TEXT1,
+ getColorResCompat(mContext, android.R.attr.textColorPrimary)
+ );
+ int text2 = Xprefs.getInt(
+ QS_HEADER_CLOCK_COLOR_CODE_TEXT2,
+ getColorResCompat(mContext, android.R.attr.textColorPrimary)
+ );
+
+ Typeface typeface = null;
+ log(TAG + "modifyClockView" + " customFont: " + customFont + " customFontEnabled: " + customFontEnabled);
+ if (customFontEnabled && (new File(customFont).exists()))
+ typeface = Typeface.createFromFile(new File(customFont));
+
+ log(TAG + "modifyClockView" + " typeface: " + typeface + " clockScale: " + clockScale + " sideMargin: " + sideMargin + " topMargin: " + topMargin);
+
+ if (TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault()) == View.LAYOUT_DIRECTION_RTL) {
+ ViewHelper.setMargins(clockView, mContext, 0, topMargin, sideMargin, 0);
+ } else {
+ ViewHelper.setMargins(clockView, mContext, sideMargin, topMargin, 0, 0);
+ }
+
+ log(TAG + "setColors");
+
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent1", customColor ? accent1 : mAccent);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent2", customColor ? accent2 : mAccent);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "accent3", customColor ? accent3 : mAccent);
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "text1", customColor ? textPrimary : getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "text2", customColor ? text2 : getColorResCompat(mContext, android.R.attr.textColorPrimary));
+ ViewHelper.findViewWithTagAndChangeColor(clockView, "backgroundAccent", customColor ? accent1 : mAccent);
+
+ if (typeface != null) {
+ log(TAG + "modifyClockView" + " applyFont");
+ ViewHelper.applyFontRecursively((ViewGroup) clockView, typeface);
+ }
+
+ if (clockScale != 1.0f) {
+ ViewHelper.applyTextScalingRecursively((ViewGroup) clockView, clockScale);
+ }
+
+ switch (clockStyle) {
+ case 6 -> {
+ ImageView imageView = clockView.findViewById(R.id.user_profile_image);
+ imageView.setImageDrawable(getUserImage());
+ }
+ }
+ }
+
+ @SuppressWarnings("all")
+ private Drawable getUserImage() {
+ if (mUserManager == null) {
+ return appContext.getResources().getDrawable(R.drawable.default_avatar);
+ }
+
+ try {
+ Method getUserIconMethod = mUserManager.getClass().getMethod("getUserIcon", int.class);
+ int userId = (int) UserHandle.class.getDeclaredMethod("myUserId").invoke(null);
+ Bitmap bitmapUserIcon = (Bitmap) getUserIconMethod.invoke(mUserManager, userId);
+ return new BitmapDrawable(mContext.getResources(), bitmapUserIcon);
+ } catch (Throwable throwable) {
+ log(TAG + throwable);
+ return appContext.getResources().getDrawable(R.drawable.default_avatar);
+ }
+ }
+
+ class ClickListener implements View.OnClickListener {
+ public ClickListener() {}
+
+ @Override
+ public void onClick(View v) {
+ String tag = v.getTag().toString();
+ if (tag.contains(CLOCK_TAG)) {
+ clockClick();
+ } else if (tag.contains(DATE_TAG)) {
+ dateClick();
+ }
+ }
+ }
+
+ private void clockClick() {
+ Intent intent = new Intent();
+ intent.setAction("android.intent.action.SHOW_ALARMS");
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP + Intent.FLAG_ACTIVITY_SINGLE_TOP);
+ callMethod(mActivityStarter, "postStartActivityDismissingKeyguard", intent, 0 /* dismissShade */);
+ }
+
+ private void dateClick() {
+ Intent intent = new Intent();
+ if (!AppUtils.isAppInstalled(mContext, "com.google.android.calendar")) return;
+ intent.setClassName("com.google.android.calendar", "com.google.android.calendar.AllInOneCalendarActivity");
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ callMethod(mActivityStarter, "postStartActivityDismissingKeyguard", intent, 0 /* dismissShade */);
+ }
+
+ private View getClockView() {
+ LayoutInflater inflater = LayoutInflater.from(appContext);
+
+ return inflater.inflate(
+ appContext
+ .getResources()
+ .getIdentifier(
+ HEADER_CLOCK_LAYOUT + clockStyle,
+ "layout",
+ BuildConfig.APPLICATION_ID
+ ),
+ null
+ );
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/HeaderImage.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/HeaderImage.java
new file mode 100644
index 000000000..747c10a6c
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/HeaderImage.java
@@ -0,0 +1,349 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getIntField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static de.robv.android.xposed.XposedHelpers.setObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderImage.*;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils.getPrimaryColor;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.graphics.Color;
+import android.graphics.ColorFilter;
+import android.graphics.ImageDecoder;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
+import android.graphics.drawable.AnimatedImageDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.Looper;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+
+import androidx.core.content.res.ResourcesCompat;
+import androidx.core.graphics.ColorUtils;
+
+import com.bosphere.fadingedgelayout.FadingEdgeLayout;
+
+import java.io.File;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.ResourceManager;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider;
+
+public class HeaderImage extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private final String TAG = "Oxygen Customizer " + this.getClass().getSimpleName() + ": ";
+
+ private final int MAX_TINT_OPACITY = 250;
+
+ // QS Header Image
+ private FadingEdgeLayout mQsHeaderLayout = null;
+ private ImageView mQsHeaderImageView = null;
+ private int qshiValue;
+ private boolean qshiEnabled;
+ private boolean qshiLandscapeEnabled;
+ private boolean qshiZoomToFit;
+ private int qshiHeightPortrait;
+ private int qshiAlpha;
+ private int qshiTint;
+ private int qshiTintCustom;
+ private int qshiPaddingSide;
+ private int qshiPaddingTop;
+ private int qshiMinHeight = 50;
+ private int qshiDefaultHeight = 200;
+ private int qshiTintIntensity = 50;
+
+ private int mColorAccent;
+ private int mColorTextPrimary;
+ private int mColorTextPrimaryInverse;
+ private int bottomFadeAmount = 0;
+
+ public HeaderImage(Context context) {
+ super(context);
+ }
+
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ qshiEnabled = Xprefs.getBoolean(QS_HEADER_IMAGE_ENABLED, false);
+ qshiValue = Xprefs.getInt(QS_HEADER_IMAGE_VALUE, -1);
+ qshiLandscapeEnabled = Xprefs.getBoolean(QS_HEADER_IMAGE_LANDSCAPE_ENABLED, false);
+ qshiAlpha = Xprefs.getSliderInt(QS_HEADER_IMAGE_ALPHA, 255);
+ qshiTint = Integer.parseInt(Xprefs.getString(QS_HEADER_IMAGE_TINT, "0"));
+ qshiTintCustom = Xprefs.getInt(QS_HEADER_IMAGE_TINT_CUSTOM, 0XFFFFFFFF);
+ qshiTintIntensity = Xprefs.getSliderInt(QS_HEADER_IMAGE_TINT_INTENSITY, 50);
+ qshiHeightPortrait = Xprefs.getSliderInt(QS_HEADER_IMAGE_HEIGHT_PORTRAIT, qshiDefaultHeight);
+ qshiZoomToFit = Xprefs.getBoolean(QS_HEADER_IMAGE_ZOOM_TO_FIT, false);
+ qshiPaddingSide = Xprefs.getSliderInt(QS_HEADER_IMAGE_PADDING_SIDE, 0);
+ qshiPaddingTop = Xprefs.getSliderInt(QS_HEADER_IMAGE_PADDING_TOP, -16);
+ bottomFadeAmount = (int) TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ Xprefs.getSliderInt(QS_HEADER_IMAGE_BOTTOM_FADE, 40),
+ mContext.getResources().getDisplayMetrics()
+ );
+
+ if (Key.length > 0) {
+ for (String qsPref : QS_PREFS) {
+ if (Key[0].equals(qsPref)) {
+ updateQSHeaderImage();
+ }
+ }
+ }
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ Class> OplusQSContainerImpl = findClass("com.oplus.systemui.qs.OplusQSContainerImpl", lpparam.classLoader);;
+ Class> QuickStatusBarHeader = findClass("com.oplus.systemui.qs.OplusQuickStatusBarHeader", lpparam.classLoader);;
+
+ try {
+ log(TAG + "Hooking");
+ hookAllMethods(OplusQSContainerImpl, "onFinishInflate", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ log(TAG + "onFinishInflate");
+ FrameLayout mQuickStatusBarHeader = (FrameLayout) param.thisObject;
+ mQuickStatusBarHeader.setBackgroundColor(Color.TRANSPARENT);
+
+ mQsHeaderLayout = new FadingEdgeLayout(mContext);
+ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiHeightPortrait, mContext.getResources().getDisplayMetrics()));
+ layoutParams.leftMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiPaddingSide, mContext.getResources().getDisplayMetrics());
+ layoutParams.rightMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiPaddingSide, mContext.getResources().getDisplayMetrics());
+ layoutParams.topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiPaddingTop, mContext.getResources().getDisplayMetrics());
+
+ mQsHeaderLayout.setLayoutParams(layoutParams);
+ mQsHeaderLayout.setVisibility(View.GONE);
+
+ mQsHeaderImageView = new ImageView(mContext);
+ mQsHeaderImageView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+ mQsHeaderLayout.addView(mQsHeaderImageView);
+
+ mQuickStatusBarHeader.addView(mQsHeaderLayout, 0);
+
+ updateQSHeaderImage();
+
+ }
+ });
+
+ hookAllMethods(OplusQSContainerImpl, "updateResources", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ updateQSHeaderImage();
+ }
+ });
+
+ hookAllMethods(QuickStatusBarHeader, "onMeasure", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ View mDatePrivacyView = (View) getObjectField(param.thisObject, "mPrivacyContainer");
+ int mTopViewMeasureHeight = getIntField(param.thisObject, "mTopViewMeasureHeight");
+
+ if ((int) callMethod(mDatePrivacyView, "getMeasuredHeight") != mTopViewMeasureHeight) {
+ setObjectField(param.thisObject, "mTopViewMeasureHeight", callMethod(mDatePrivacyView, "getMeasuredHeight"));
+ callMethod(param.thisObject, "updateAnimators");
+ }
+ }
+ });
+ } catch (Throwable ignored) {}
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+
+ private void updateQSHeaderImage() {
+ if (mQsHeaderLayout == null || mQsHeaderImageView == null) {
+ return;
+ }
+
+ if (!qshiEnabled) {
+ mQsHeaderLayout.setVisibility(View.GONE);
+ return;
+ }
+
+ loadImageOrGif(mQsHeaderImageView);
+
+ // Alpha
+ mQsHeaderImageView.setImageAlpha(qshiAlpha);
+
+ // Tint
+ mColorAccent = getPrimaryColor(mContext);
+ mColorTextPrimary = SettingsLibUtilsProvider.getColorAttrDefaultColor(mContext,
+ android.R.attr.textColorPrimary);
+ mColorTextPrimaryInverse = SettingsLibUtilsProvider.getColorAttrDefaultColor(
+ mContext, android.R.attr.textColorPrimaryInverse);
+
+
+ ViewGroup.MarginLayoutParams qshiParams = (ViewGroup.MarginLayoutParams) mQsHeaderLayout.getLayoutParams();
+ //LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiHeightPortrait, mContext.getResources().getDisplayMetrics()));
+ qshiParams.leftMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiPaddingSide, mContext.getResources().getDisplayMetrics());
+ qshiParams.rightMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiPaddingSide, mContext.getResources().getDisplayMetrics());
+ qshiParams.topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiPaddingTop, mContext.getResources().getDisplayMetrics());
+ qshiParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, qshiHeightPortrait, mContext.getResources().getDisplayMetrics());
+ mQsHeaderLayout.setLayoutParams(qshiParams);
+ mQsHeaderLayout.requestLayout();
+
+ Configuration config = mContext.getResources().getConfiguration();
+ if (config.orientation == Configuration.ORIENTATION_LANDSCAPE && !qshiLandscapeEnabled) {
+ mQsHeaderLayout.setVisibility(View.GONE);
+ } else {
+ mQsHeaderLayout.setVisibility(View.VISIBLE);
+ }
+
+ mQsHeaderLayout.setFadeEdges(false, false, bottomFadeAmount != 0, false);
+ mQsHeaderLayout.setFadeSizes(0, 0, bottomFadeAmount, 0);
+
+ }
+
+ private void addOrRemoveProperty(View view, int property, boolean flag) {
+ Object vParam = view.getLayoutParams();
+ if (vParam instanceof RelativeLayout.LayoutParams) {
+ RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) vParam;
+ if (flag) {
+ layoutParams.addRule(property);
+ } else {
+ layoutParams.removeRule(property);
+ }
+ view.setLayoutParams(layoutParams);
+ } else if (vParam instanceof LinearLayout.LayoutParams) {
+ LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) vParam;
+ if (flag) {
+ layoutParams.gravity = property;
+ } else {
+ layoutParams.gravity = Gravity.NO_GRAVITY;
+ }
+ view.setLayoutParams(layoutParams);
+ }
+ }
+
+ private void loadImageOrGif(ImageView iv) {
+ AtomicBoolean applyTint = new AtomicBoolean(false);
+ int tintColor;
+ if (qshiTint == 0) {
+ tintColor = -1;
+ mQsHeaderImageView.setColorFilter(null);
+ } else if (qshiTint == 1) {
+ tintColor = mColorAccent;
+ } else if (qshiTint == 2) {
+ tintColor = mColorTextPrimary;
+ } else if (qshiTint == 3) {
+ tintColor = mColorTextPrimaryInverse;
+ } else if (qshiTint == 4) {
+ // validate color and limit custom tint opacity to MAX_TINT_OPACITY
+ tintColor = getValidCustomTint(qshiTintCustom);
+ } else {
+ tintColor = -1;
+ }
+ if (qshiValue != -1) {
+ @SuppressLint("DiscouragedApi") int resId = ResourceManager.modRes.getIdentifier("qs_header_image_" + qshiValue,"drawable", BuildConfig.APPLICATION_ID);
+ Drawable drw = ResourcesCompat.getDrawable(ResourceManager.modRes,
+ resId,
+ mContext.getTheme());
+ iv.post(()->loadImageMain(iv, drw));
+ applyTint.set(true);
+ } else {
+ try {
+ ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
+ executor.scheduleAtFixedRate(() -> {
+ File Android = new File(Environment.getExternalStorageDirectory() + "/Android");
+
+ if (Android.isDirectory()) {
+ try {
+ ImageDecoder.Source source = ImageDecoder.createSource(new File(Environment.getExternalStorageDirectory() + "/.oxygen_customizer/header_image.png"));
+
+ Drawable drawable = ImageDecoder.decodeDrawable(source);
+ iv.post(() -> loadImageMain(iv, drawable));
+
+ if (drawable instanceof AnimatedImageDrawable) {
+ if (tintColor != -1) {
+ int fadeFilter = ColorUtils.blendARGB(Color.TRANSPARENT, tintColor, qshiTintIntensity / 100f);
+ ColorFilter colorFilter = new PorterDuffColorFilter(fadeFilter, PorterDuff.Mode.SRC_ATOP);
+ drawable.setColorFilter(colorFilter);
+ } else {
+ drawable.setColorFilter(null);
+ }
+ ((AnimatedImageDrawable) drawable).setRepeatCount(AnimatedImageDrawable.REPEAT_INFINITE);
+ ((AnimatedImageDrawable) drawable).start();
+ applyTint.set(false);
+ } else {
+ applyTint.set(true);
+ }
+ } catch (Throwable ignored) {}
+
+ executor.shutdown();
+ executor.shutdownNow();
+ }
+ }, 0, 5, TimeUnit.SECONDS);
+
+ } catch (Throwable ignored) {
+ }
+ if (applyTint.get()) {
+ if (tintColor != -1) {
+ int fadeFilter = ColorUtils.blendARGB(Color.TRANSPARENT, tintColor, qshiTintIntensity / 100f);
+ mQsHeaderImageView.setColorFilter(fadeFilter, PorterDuff.Mode.SRC_ATOP);
+ }
+ } else {
+ mQsHeaderImageView.setColorFilter(null);
+ }
+ }
+ if (!qshiZoomToFit) {
+ iv.setScaleType(ImageView.ScaleType.FIT_XY);
+ } else {
+ iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
+ iv.setAdjustViewBounds(false);
+ iv.setCropToPadding(false);
+ }
+ }
+
+ private void loadImageMain(ImageView iv, Drawable drawable) {
+ iv.setImageDrawable(drawable);
+ }
+
+ private int getValidCustomTint(int customTint) {
+ int alpha = Color.alpha(customTint);
+ int red = Color.red(customTint);
+ int blue = Color.blue(customTint);
+ int green = Color.green(customTint);
+
+ if (alpha < 0 || red < 0 || red > 255 || blue < 0 || blue > 255
+ || green < 0 || green > 255) {
+ return -1;
+ }
+
+ //limit tint opacity level (alpha <= MAX_TINT_OPACITY)
+ if (alpha > MAX_TINT_OPACITY) {
+ alpha = MAX_TINT_OPACITY;
+ return Color.argb(alpha, red, green, blue);
+ }
+ else {
+ return customTint;
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/QSTiles.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/QSTiles.java
new file mode 100644
index 000000000..357b276cc
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/QSTiles.java
@@ -0,0 +1,138 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getIntField;
+import static de.robv.android.xposed.XposedHelpers.setIntField;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsTiles.QS_COLUMNS;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsTiles.QS_CUSTOMIZE_TILES;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsTiles.QS_QUICK_TILES;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsTiles.QS_ROWS;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsTiles.QS_TILES_PREFS;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.Context;
+import android.content.res.Configuration;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+
+public class QSTiles extends XposedMods {
+
+ public static final String listenPackage = Constants.Packages.SYSTEM_UI;
+
+ private static final int NOT_SET = 0;
+ private static final int QS_COL_NOT_SET = 4;
+ private static final int QS_ROW_NOT_SET = 3;
+ private static final int QQS_NOT_SET = 5;
+
+ private static int QSRowQty = NOT_SET;
+ private static int QSColQty = QS_COL_NOT_SET;
+ private static int QQSTileQty = QQS_NOT_SET;
+
+ private static int QSRowQtyL = NOT_SET;
+ private static int QSColQtyL = QS_COL_NOT_SET;
+ private static int QQSTileQtyL = QQS_NOT_SET;
+
+ private boolean mCustomizeQSTiles = false;
+
+ public QSTiles(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ mCustomizeQSTiles = Xprefs.getBoolean(QS_CUSTOMIZE_TILES, false);
+ QQSTileQty = Xprefs.getSliderInt(QS_QUICK_TILES, QQS_NOT_SET);
+ QSRowQty = Xprefs.getSliderInt(QS_ROWS, QS_ROW_NOT_SET);
+ QSColQty = Xprefs.getSliderInt(QS_COLUMNS, QS_COL_NOT_SET);
+
+ if (Key.length > 0) {
+ for (String qsTilePref : QS_TILES_PREFS) {
+ if (Key[0].equals(qsTilePref)) {
+ SystemUtils.doubleToggleDarkMode();
+ }
+ }
+ }
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!listenPackage.equals(lpparam.packageName)) return;
+
+ Class> QuickQSPanel = findClass("com.android.systemui.qs.QuickQSPanel", lpparam.classLoader);
+ findAndHookMethod(QuickQSPanel, "getNumQuickTiles", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (mCustomizeQSTiles) {
+ param.setResult(QQSTileQty);
+ }
+ }
+ });
+
+ Class> TileLayout = findClass("com.android.systemui.qs.TileLayout", lpparam.classLoader);
+ findAndHookMethod(TileLayout, "updateMaxRows",
+ int.class,
+ int.class,
+ new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!mCustomizeQSTiles ||
+ mContext.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) return;
+
+ int mRows = getIntField(param.thisObject, "mRows");
+ setIntField(param.thisObject, "mRows", QSRowQty);
+ param.setResult(mRows != QSRowQty);
+
+ }
+ });
+
+
+
+ hookAllMethods(TileLayout, "updateColumns",
+ new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!mCustomizeQSTiles) return;
+
+ int mColumns = getIntField(param.thisObject, "mColumns");
+ int orientation = mContext.getResources().getConfiguration().orientation;
+ int newColumns = orientation == Configuration.ORIENTATION_PORTRAIT ? QSColQty : QSColQtyL;
+ setIntField(param.thisObject, "mColumns", newColumns);
+ param.setResult(mColumns != newColumns);
+
+ }
+ });
+
+ Class> OplusHeaderTileLayout = findClass("com.oplus.systemui.qs.widget.OplusHeaderTileLayout", lpparam.classLoader);
+ hookAllMethods(OplusHeaderTileLayout, "updateColumns",
+ new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!mCustomizeQSTiles) return;
+
+ log("OplusHeaderTileLayout updateColumns");
+
+ int mColumns = getIntField(param.thisObject, "mColumns");
+ int orientation = mContext.getResources().getConfiguration().orientation;
+ int newColumns = orientation == Configuration.ORIENTATION_PORTRAIT ? QSColQty : QSColQtyL;
+ setIntField(param.thisObject, "mColumns", 8);
+ param.setResult(mColumns != 8);
+
+ }
+ });
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/QsTileCustomization.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/QsTileCustomization.java
new file mode 100644
index 000000000..676ddfba2
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/QsTileCustomization.java
@@ -0,0 +1,431 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookConstructor;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getBooleanField;
+import static de.robv.android.xposed.XposedHelpers.getIntField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static de.robv.android.xposed.XposedHelpers.setIntField;
+import static de.robv.android.xposed.XposedHelpers.setObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsTiles.QS_TILES_PREFS;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsTilesCustomization.*;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils.getPrimaryColor;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.graphics.Color;
+import android.graphics.ColorFilter;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.ShapeDrawable;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AbsSeekBar;
+import android.widget.CheckBox;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.SeekBar;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.core.content.res.ResourcesCompat;
+import androidx.core.graphics.ColorUtils;
+import androidx.core.graphics.drawable.DrawableCompat;
+
+import com.google.android.material.slider.Slider;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XPrefs;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.utils.ShellUtils;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+
+public class QsTileCustomization extends XposedMods {
+
+ private static final String listenerPackage = Constants.Packages.SYSTEM_UI;
+ private Object mPersonalityManager = null;
+ private int qsInactiveColor, qsActiveColor, qsDisabledColor;
+ private boolean qsInactiveColorEnabled, qsActiveColorEnabled, qsDisabledColorEnabled;
+ private boolean qsLabelsHide, qsLabelsColorEnabled;
+ private int qsLabelsColor;
+ private boolean qsBrightnessSliderCustomize, qsBrightnessBackgroundCustomize;
+ private int qsBrightnessSliderColorMode, qsBrightnessSliderColor, qsBrightnessBackgroundColor;
+ private View mOplusQsMediaView = null;
+ private Drawable mOplusQsMediaDefaultBackground = null;
+ private Drawable mOplusQsMediaDrawable = null;
+ private ViewGroup mLabelContainer = null;
+ private TextView mTitle = null, mSubtitle = null;
+ private ImageView mExpandIndicator = null;
+ private boolean advancedCustom = true;
+ private static final ArrayList qsViews = new ArrayList<>();
+
+ public QsTileCustomization(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ qsActiveColorEnabled = Xprefs.getBoolean(QS_TILE_ACTIVE_COLOR_ENABLED, false);
+ qsActiveColor = Xprefs.getInt(QS_TILE_ACTIVE_COLOR, Color.RED);
+ qsInactiveColorEnabled = Xprefs.getBoolean(QS_TILE_INACTIVE_COLOR_ENABLED, false);
+ qsInactiveColor = Xprefs.getInt(QS_TILE_INACTIVE_COLOR, Color.GRAY);
+ qsDisabledColorEnabled = Xprefs.getBoolean(QS_TILE_DISABLED_COLOR_ENABLED, false);
+ qsDisabledColor = Xprefs.getInt(QS_TILE_DISABLED_COLOR, Color.DKGRAY);
+ qsBrightnessSliderCustomize = Xprefs.getBoolean(QS_BRIGHTNESS_SLIDER_CUSTOMIZE, false);
+ qsBrightnessSliderColorMode = Integer.parseInt(Xprefs.getString(QS_BRIGHTNESS_SLIDER_COLOR_MODE, "0"));
+ qsBrightnessSliderColor = Xprefs.getInt(QS_BRIGHTNESS_SLIDER_COLOR, getPrimaryColor(mContext));
+ qsBrightnessBackgroundCustomize = Xprefs.getBoolean(QS_BRIGHTNESS_SLIDER_BACKGROUND_ENABLED, false);
+ qsBrightnessBackgroundColor = Xprefs.getInt(QS_BRIGHTNESS_SLIDER_BACKGROUND_COLOR, Color.TRANSPARENT);
+ qsLabelsHide = Xprefs.getBoolean(QS_TILE_HIDE_LABELS, false);
+ qsLabelsColorEnabled = Xprefs.getBoolean(QS_TILE_LABELS_CUSTOM_COLOR_ENABLED, false);
+ qsLabelsColor = Xprefs.getInt(QS_TILE_LABELS_CUSTOM_COLOR, Color.WHITE);
+
+ if (Key.length > 0) {
+ for(String k : QS_UPDATE_PREFS) {
+ if (Key[0].equals(k)) {
+ if (Key[0].equals(QS_TILE_INACTIVE_COLOR_ENABLED) || Key[0].equals(QS_TILE_INACTIVE_COLOR)) {
+ updateMediaQs();
+ }
+ notifyQsUpdate();
+ }
+ }
+ }
+
+
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenerPackage)) return;
+
+ Class> PersonalityManager = findClass("com.oplus.systemui.qs.personality.PersonalityManager", lpparam.classLoader);
+ hookAllConstructors(PersonalityManager, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ // Do something
+ mPersonalityManager = param.thisObject;
+ }
+ });
+
+ Class> OplusQSTileBaseView = findClass("com.oplus.systemui.qs.qstileimpl.OplusQSTileBaseView", lpparam.classLoader);
+
+ /*
+ TESTING CUSTOMIZATIONS
+ hookAllMethods(OplusQSTileBaseView, "updateBgResource", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ ImageView mBg = (ImageView) getObjectField(param.thisObject, "mBg");
+ int state = getIntField(param.thisObject, "mTileIconState");
+ if (state == 2) {
+ GradientDrawable gb = new GradientDrawable();
+ gb.setShape(GradientDrawable.RECTANGLE);
+ gb.setGradientType(GradientDrawable.LINEAR_GRADIENT);
+ gb.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
+ gb.setCornerRadii(new float[]{
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28)
+ });
+ gb.setStroke(28, getPrimaryColor(mContext));
+ mBg.setImageDrawable(gb);
+ }
+ }
+ });
+
+ hookAllMethods(OplusQSTileBaseView, "obtainDrawable", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ int state = (int) param.args[0];
+ if (state == 2) {
+ GradientDrawable gb = new GradientDrawable();
+ gb.setShape(GradientDrawable.RECTANGLE);
+ gb.setGradientType(GradientDrawable.LINEAR_GRADIENT);
+ gb.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
+ gb.setCornerRadii(new float[]{
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28)
+ });
+ gb.setStroke(28, getPrimaryColor(mContext));
+ param.setResult(gb);
+ }
+ }
+ });
+
+ hookAllMethods(OplusQSTileBaseView, "setDrawableForDefault", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ ImageView mBg = (ImageView) getObjectField(param.thisObject, "mBg");
+ Object St = param.args[0];
+ int state = (int) getIntField(St, "state");
+ if (state == 2) {
+ GradientDrawable gb = new GradientDrawable();
+ gb.setShape(GradientDrawable.RECTANGLE);
+ gb.setGradientType(GradientDrawable.LINEAR_GRADIENT);
+ gb.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
+ gb.setCornerRadii(new float[]{
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28)
+ });
+ gb.setStroke(28, getPrimaryColor(mContext));
+ mBg.setImageDrawable(gb);
+ }
+ }
+ });
+
+ hookAllMethods(OplusQSTileBaseView, "handleStateChanged", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ ImageView mBg = (ImageView) getObjectField(param.thisObject, "mBg");
+ Object St = param.args[0];
+ int state = (int) getIntField(St, "state");
+ if (state == 2) {
+ GradientDrawable gb = new GradientDrawable();
+ gb.setShape(GradientDrawable.RECTANGLE);
+ gb.setGradientType(GradientDrawable.LINEAR_GRADIENT);
+ gb.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
+ gb.setCornerRadii(new float[]{
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28),
+ dp2px(mContext, 28), dp2px(mContext, 28)
+ });
+ gb.setStroke(28, getPrimaryColor(mContext));
+ mBg.setImageDrawable(gb);
+ }
+ }
+ });*/
+
+
+ final XC_MethodHook colorHook = new XC_MethodHook() {
+
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ int state = (int) param.args[0];
+ ShapeDrawable mPersonalityDrawable = (ShapeDrawable) param.getResult();
+ if (state == 1 && qsInactiveColorEnabled) // Inactive State
+ {
+ mPersonalityDrawable.getPaint().setColor(qsInactiveColor);
+ } else if (state == 2 && qsActiveColorEnabled) // Active State
+ {
+ mPersonalityDrawable.getPaint().setColor(qsActiveColor);
+ } else if (qsDisabledColorEnabled && state!=1 && state!=2) // Disabled State
+ {
+ mPersonalityDrawable.getPaint().setColor(qsDisabledColor);
+ }
+ if (qsInactiveColorEnabled || qsActiveColorEnabled || qsDisabledColorEnabled || advancedCustom) mPersonalityDrawable.invalidateSelf();
+ }
+ };
+
+ hookAllMethods(OplusQSTileBaseView, "generateDrawable", colorHook);
+
+ Class> OplusQSHighlightTileView = findClass("com.oplus.systemui.qs.qstileimpl.OplusQSHighlightTileView", lpparam.classLoader);
+ hookAllMethods(OplusQSHighlightTileView, "generateDrawable", colorHook);
+
+
+ Class> OplusQsMediaPanelView = findClass("com.oplus.systemui.qs.media.OplusQsMediaPanelView", lpparam.classLoader);
+ hookAllMethods(OplusQsMediaPanelView, "onFinishInflate", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ // Do something
+ mOplusQsMediaView = (View) param.thisObject;
+ mOplusQsMediaDefaultBackground = mOplusQsMediaView.getBackground();
+ mOplusQsMediaDrawable = mOplusQsMediaView.getBackground();
+ if (qsInactiveColorEnabled) {
+ mOplusQsMediaDrawable.setTint(qsInactiveColor);
+ mOplusQsMediaDrawable.invalidateSelf();
+ mOplusQsMediaView.setBackground(mOplusQsMediaDrawable);
+ } else
+ mOplusQsMediaView.setBackground(mOplusQsMediaDefaultBackground);
+ }
+ });
+
+ Class> OplusQSTileView = findClass("com.oplus.systemui.qs.qstileimpl.OplusQSTileView", lpparam.classLoader);
+ hookAllMethods(OplusQSTileView, "createLabel", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+
+ // Do something
+ mLabelContainer = (ViewGroup) getObjectField(param.thisObject, "mLabelContainer");
+ mTitle = (TextView) getObjectField(param.thisObject, "mLabel");
+ mSubtitle = (TextView) getObjectField(param.thisObject, "mSecondLine");
+ mExpandIndicator = (ImageView) getObjectField(param.thisObject, "mExpandIndicator");
+ setupLabels();
+ }
+ });
+
+ hookAllMethods(OplusQSTileView, "handleStateChanged", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ // Do something
+ mLabelContainer = (ViewGroup) getObjectField(param.thisObject, "mLabelContainer");
+ mTitle = (TextView) getObjectField(param.thisObject, "mLabel");
+ mSubtitle = (TextView) getObjectField(param.thisObject, "mSecondLine");
+ mExpandIndicator = (ImageView) getObjectField(param.thisObject, "mExpandIndicator");
+ setupLabels();
+ }
+ });
+
+ Class> OplusToggleSliderView = findClass("com.oplus.systemui.qs.widget.OplusToggleSliderView", lpparam.classLoader);
+
+ findAndHookMethod(OplusToggleSliderView, "onShapeChanged",
+ int.class,
+ new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (!qsBrightnessSliderCustomize) return;
+
+ if (qsBrightnessSliderColorMode == 1) {
+ callMethod(getObjectField(param.thisObject, "mSlider"), "setProgressColor", ColorStateList.valueOf(getPrimaryColor(mContext)));
+ } else if (qsBrightnessSliderColorMode == 2) {
+ callMethod(getObjectField(param.thisObject, "mSlider"), "setProgressColor", ColorStateList.valueOf(qsBrightnessSliderColor));
+ }
+
+ if (qsBrightnessBackgroundCustomize) {
+ callMethod(getObjectField(param.thisObject, "mSlider"), "setSeekBarBackgroundColor", ColorStateList.valueOf(qsBrightnessBackgroundColor));
+ } else {
+ int color = ResourcesCompat.getColor(mContext.getResources(), mContext.getResources().getIdentifier("status_bar_qs_brightness_slider_bg_color", "color", lpparam.packageName), mContext.getTheme());
+ callMethod(getObjectField(param.thisObject, "mSlider"), "setSeekBarBackgroundColor", ColorStateList.valueOf(color));
+ }
+ }
+ });
+
+ hookAllMethods(OplusToggleSliderView, "setupSliderProgressDrawable", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (!qsBrightnessSliderCustomize) return;
+
+ int colorToApply = getPrimaryColor(mContext);
+ if (qsBrightnessSliderColorMode == 2) {
+ colorToApply = qsBrightnessSliderColor;
+ }
+
+ callMethod(getObjectField(param.thisObject, "mSlider"), "setProgressColor", ColorStateList.valueOf(colorToApply));
+ if (getBooleanField(param.thisObject, "mIsMirror")) {
+ callMethod(getObjectField(param.thisObject, "mSlider"), "setThumbColor", ColorStateList.valueOf(colorToApply));
+ }
+
+ if (qsBrightnessBackgroundCustomize) {
+ callMethod(getObjectField(param.thisObject, "mSlider"), "setSeekBarBackgroundColor", ColorStateList.valueOf(qsBrightnessBackgroundColor));
+ }
+ }
+ });
+
+ final XC_MethodHook newUiHook = new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (!qsBrightnessSliderCustomize) return;
+
+ Object slider = getObjectField(param.thisObject, "slider");
+
+ int colorToApply = getPrimaryColor(mContext);
+ if (qsBrightnessSliderColorMode == 2) {
+ colorToApply = qsBrightnessSliderColor;
+ }
+
+ callMethod(slider, "setProgressColor", ColorStateList.valueOf(colorToApply));
+
+ if (qsBrightnessBackgroundCustomize) {
+ callMethod(slider, "setSeekBarBackgroundColor", ColorStateList.valueOf(qsBrightnessBackgroundColor));
+ }
+ }
+ };
+
+ try {
+ Class> OplusQsToggleSliderLayout = findClass("com.oplus.systemui.qs.widget.OplusQsToggleSliderLayout", lpparam.classLoader);
+ hookAllConstructors(OplusQsToggleSliderLayout, newUiHook);
+ findAndHookMethod(OplusQsToggleSliderLayout,
+ "onShapeChanged", int.class,
+ newUiHook
+ );
+
+ } catch (Throwable ignored) {}
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenerPackage.equals(packageName);
+ }
+
+ private void notifyQsUpdate() {
+ if (mPersonalityManager == null) return;
+
+ int currentShape = 0;
+ try {
+ currentShape = Integer.parseInt(ShellUtils.execCommand("settings get system qs_personality_shape_type", true).successMsg);
+ } catch (Throwable ignored) {}
+ int finalCurrentShape = currentShape;
+ /*new Thread(() -> {
+ try {
+ while (updating) {
+ Thread.currentThread().wait(500);
+ }
+ updating = true;
+
+ ShellUtils.execCommand("settings set system qs_personality_shape_type 0", false);
+ Thread.sleep(500);
+ ShellUtils.execCommand("settings get system qs_personality_shape_type " + finalCurrentShape, false);
+
+ Thread.sleep(500);
+ updating = false;
+ } catch (Exception ignored) {
+ }
+ }).start();*/
+ callMethod(mPersonalityManager, "notifyListener", currentShape);
+ }
+
+ private void updateMediaQs() {
+ if (qsInactiveColorEnabled) {
+ if (mOplusQsMediaView != null && mOplusQsMediaDrawable != null) {
+ mOplusQsMediaDrawable.setTint(qsInactiveColor);
+ mOplusQsMediaDrawable.invalidateSelf();
+ mOplusQsMediaView.setBackground(mOplusQsMediaDrawable);
+ }
+ } else {
+ if (mOplusQsMediaView != null && mOplusQsMediaDefaultBackground != null) {
+ mOplusQsMediaView.setBackground(mOplusQsMediaDefaultBackground);
+ }
+ }
+ }
+
+ private void setupLabels() {
+ if (mLabelContainer == null) return;
+
+ if (qsLabelsHide) {
+ if (mLabelContainer.getVisibility() != View.GONE) mLabelContainer.setVisibility(View.GONE);
+ return;
+ }
+
+ if (mLabelContainer.getVisibility() != View.VISIBLE) mLabelContainer.setVisibility(View.VISIBLE);
+
+ if (qsLabelsColorEnabled) {
+ mTitle.setTextColor(qsLabelsColor);
+ mSubtitle.setTextColor(qsLabelsColor);
+ mExpandIndicator.setImageTintList(ColorStateList.valueOf(qsLabelsColor));
+ }
+
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarClock.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarClock.java
new file mode 100644
index 000000000..b2a214154
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarClock.java
@@ -0,0 +1,578 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getBooleanField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static de.robv.android.xposed.XposedHelpers.setObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.Packages.SYSTEM_UI;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.QS_HEADER_CLOCK_STOCK_CLOCK_BACKGROUND_CHIP;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getStrokeWidth;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getStyle;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.QsHeaderClock.getUseAccentColor;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.OpUtils.getPrimaryColor;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+
+import android.annotation.SuppressLint;
+import android.app.ActivityManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.graphics.Color;
+import android.graphics.drawable.GradientDrawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.text.Spannable;
+import android.text.SpannableStringBuilder;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.text.style.CharacterStyle;
+import android.text.style.RelativeSizeSpan;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.ColorInt;
+import androidx.annotation.Nullable;
+import androidx.core.content.res.ResourcesCompat;
+
+import java.lang.reflect.Method;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.XposedBridge;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class StatusbarClock extends XposedMods {
+
+ private final String TAG = getClass().getSimpleName();
+ private static final String listenPackage = SYSTEM_UI;
+
+ private static final int AM_PM_STYLE_NORMAL = 0;
+ private static final int AM_PM_STYLE_SMALL = 1;
+ private static final int AM_PM_STYLE_GONE = 2;
+
+ private static final int CLOCK_DATE_DISPLAY_GONE = 0;
+ private static final int CLOCK_DATE_DISPLAY_SMALL = 1;
+ private static final int CLOCK_DATE_DISPLAY_NORMAL = 2;
+ private static final int CLOCK_DATE_STYLE_REGULAR = 0;
+ private static final int CLOCK_DATE_STYLE_LOWERCASE = 1;
+ private static final int CLOCK_DATE_STYLE_UPPERCASE = 2;
+ private static final int HIDE_DURATION = 60; // 1 minute
+ private static final int SHOW_DURATION = 5; // 5 seconds
+ private static final int STYLE_DATE_LEFT = 0;
+ private static final int STYLE_DATE_RIGHT = 1;
+
+ private boolean mClockAutoHideLauncher = false;
+ private boolean mScreenOn = true;
+ private Handler autoHideHandler = new Handler();
+
+ private boolean mClockAutoHide;
+ private boolean mClockAutoHideLauncherSwitch;
+ private int mHideDuration = HIDE_DURATION, mShowDuration = SHOW_DURATION;
+ private int mAmPmStyle;
+ private boolean mShowSeconds;
+ private int mClockDateDisplay = CLOCK_DATE_DISPLAY_GONE;
+ private int mClockDateStyle = CLOCK_DATE_STYLE_REGULAR;
+ private int mClockDatePosition = STYLE_DATE_LEFT;
+ private String mClockDateFormat = null;
+ private Object Clock = null;
+ private TextView mClockView;
+ private Object mCollapsedStatusBarFragment = null;
+ private ViewGroup mStatusbarStartSide = null;
+ private View mCenteredIconArea = null;
+ private LinearLayout mSystemIconArea = null;
+ public static final int POSITION_LEFT = 2;
+ public static final int POSITION_CENTER = 1;
+ public static final int POSITION_RIGHT = 0;
+ public static final int POSITION_LEFT_EXTRA_LEVEL = 3;
+ private int mClockPosition = POSITION_LEFT;
+ private int leftClockPadding = 0, rightClockPadding = 0;
+
+ private boolean mClockCustomColor;
+ private int mClockColor = Color.WHITE;
+
+ // Clock Chip
+ private boolean clockChip;
+ private int chipStyle;
+ private boolean chipUseAccent, chipUseGradient;
+ private int chipGradient1, chipGradient2;
+ private int chipStrokeWidth;
+ private boolean chipRoundCorners;
+ private int chipTopSxRound, chipTopDxRound, chipBottomSxRound,chipBottomDxRound;
+ private int mAccent;
+ private final GradientDrawable mClockChipDrawale = new GradientDrawable();
+ private int mClockSize = 14;
+
+
+ public StatusbarClock(Context context) {
+ super(context);
+
+ if (!listensTo(context.getPackageName())) return;
+
+ rightClockPadding = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("status_bar_clock_starting_padding", "dimen", mContext.getPackageName()));
+ leftClockPadding = mContext.getResources().getDimensionPixelSize(mContext.getResources().getIdentifier("status_bar_left_clock_end_padding", "dimen", mContext.getPackageName()));
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ mClockAutoHide = Xprefs.getBoolean("status_bar_clock_auto_hide", false);
+ mClockAutoHideLauncherSwitch = Xprefs.getBoolean("status_bar_clock_auto_hide_launcher", false);
+ mHideDuration = Xprefs.getSliderInt("status_bar_clock_auto_hide_hduration", HIDE_DURATION);
+ mShowDuration = Xprefs.getSliderInt("status_bar_clock_auto_hide_sduration", SHOW_DURATION);
+ mAmPmStyle = Integer.parseInt(Xprefs.getString("status_bar_am_pm", String.valueOf(AM_PM_STYLE_GONE)));
+ mShowSeconds = Xprefs.getBoolean("status_bar_clock_seconds", false);
+ mClockDateDisplay = Integer.parseInt(Xprefs.getString("status_bar_clock_date_display", String.valueOf(CLOCK_DATE_DISPLAY_GONE)));
+ mClockDatePosition = Integer.parseInt(Xprefs.getString("status_bar_clock_date_position", String.valueOf(STYLE_DATE_LEFT)));
+ mClockDateStyle = Integer.parseInt(Xprefs.getString("status_bar_clock_date_style", String.valueOf(CLOCK_DATE_STYLE_REGULAR)));
+ mClockDateFormat = Xprefs.getString("status_bar_clock_date_format", null);
+ mClockPosition = Integer.parseInt(Xprefs.getString("status_bar_clock", String.valueOf(POSITION_LEFT)));
+ mClockCustomColor = Xprefs.getBoolean("status_bar_custom_clock_color", false);
+ mClockColor = Xprefs.getInt("status_bar_clock_color", Color.WHITE);
+ mClockSize = Xprefs.getSliderInt("status_bar_clock_size", 14);
+
+ // gradients prefs
+ clockChip = Xprefs.getBoolean("status_bar_clock_background_chip_switch", false);
+ chipStyle = Xprefs.getInt("status_bar_clock_background_chip" + "_STYLE", 0);
+ chipUseAccent = Xprefs.getBoolean("status_bar_clock_background_chip" + "_USE_ACCENT_COLOR", true);
+ chipUseGradient = Xprefs.getBoolean("status_bar_clock_background_chip" + "_USE_GRADIENT", false);
+ chipGradient1 = Xprefs.getInt("status_bar_clock_background_chip" + "_GRADIENT_1", mAccent);
+ chipGradient2 = Xprefs.getInt("status_bar_clock_background_chip" + "_GRADIENT_2", mAccent);
+ chipStrokeWidth = Xprefs.getInt("status_bar_clock_background_chip" + "_STROKE_WIDTH", 10);
+ chipRoundCorners = Xprefs.getBoolean("status_bar_clock_background_chip" + "_ROUNDED_CORNERS", false);
+ chipTopSxRound = Xprefs.getInt("status_bar_clock_background_chip" + "_TOP_LEFT_RADIUS", 28);
+ chipTopDxRound = Xprefs.getInt("status_bar_clock_background_chip" + "_TOP_RIGHT_RADIUS", 28);
+ chipBottomSxRound = Xprefs.getInt("status_bar_clock_background_chip" + "_BOTTOM_LEFT_RADIUS", 28);
+ chipBottomDxRound = Xprefs.getInt("status_bar_clock_background_chip" + "_BOTTOM_RIGHT_RADIUS", 28);
+
+
+ if (Key.length > 0) {
+ switch (Key[0]) {
+ case "status_bar_clock_auto_hide" -> updateClockVisibility();
+ case "status_bar_am_pm",
+ "status_bar_clock_date_display",
+ "status_bar_clock_seconds",
+ "status_bar_clock_date_position",
+ "status_bar_clock_date_style",
+ "status_bar_clock_date_format" -> updateClock();
+ case "status_bar_clock_size" -> setClockSize();
+ case "status_bar_custom_clock_color", "status_bar_clock_color" -> updateClockColor();
+ case "status_bar_clock" -> placeClock();
+ case "status_bar_clock_background_chip" + "_STYLE",
+ "status_bar_clock_background_chip" + "_USE_ACCENT_COLOR",
+ "status_bar_clock_background_chip" + "_USE_GRADIENT",
+ "status_bar_clock_background_chip" + "_GRADIENT_1",
+ "status_bar_clock_background_chip" + "_GRADIENT_2",
+ "status_bar_clock_background_chip" + "_STROKE_WIDTH",
+ "status_bar_clock_background_chip" + "_ROUNDED_CORNERS",
+ "status_bar_clock_background_chip" + "_TOP_LEFT_RADIUS",
+ "status_bar_clock_background_chip" + "_TOP_RIGHT_RADIUS",
+ "status_bar_clock_background_chip" + "_BOTTOM_LEFT_RADIUS",
+ "status_bar_clock_background_chip" + "_BOTTOM_RIGHT_RADIUS" -> updateChip();
+ case "status_bar_clock_background_chip_switch" -> setupChip();
+ }
+ }
+
+ }
+
+ private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (Clock == null) return;
+ Handler handler = (Handler) callMethod(Clock, "getHandler");
+ if (handler == null) return;
+ String action = intent.getAction();
+ if (Intent.ACTION_SCREEN_OFF.equals(action)) {
+ mScreenOn = false;
+ } else if (Intent.ACTION_SCREEN_ON.equals(action)) {
+ mScreenOn = true;
+ }
+ if (mScreenOn) {
+ handler.post(() -> callMethod(Clock, "updateClock"));
+ if (mClockAutoHide) autoHideHandler.post(() -> updateClockVisibility(Clock));
+ }
+ }
+ };
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!listenPackage.equals(lpparam.packageName)) return;
+
+ Class> ClockClass = findClass("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader);
+ Class> CollapsedStatusBarFragmentClass = findClass("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment", lpparam.classLoader);
+ Class> StatClockClass = findClass("com.oplus.systemui.statusbar.widget.StatClock", lpparam.classLoader);
+ Class> TaskStackListenerImpl = findClass("com.android.wm.shell.common.TaskStackListenerImpl", lpparam.classLoader);
+
+ IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
+ filter.addAction(Intent.ACTION_SCREEN_ON);
+ mContext.registerReceiver(mBroadcastReceiver, filter, Context.RECEIVER_EXPORTED);
+
+ hookAllConstructors(CollapsedStatusBarFragmentClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mCollapsedStatusBarFragment = param.thisObject;
+ }
+ });
+
+ findAndHookMethod(CollapsedStatusBarFragmentClass,
+ "onViewCreated", View.class, Bundle.class, new XC_MethodHook() {
+ @SuppressLint("DiscouragedApi")
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+
+ try {
+ mClockView = (TextView) getObjectField(param.thisObject, "mClockView");
+ } catch (Throwable ignored) {
+ }
+
+ ViewGroup mStatusBar = (ViewGroup) getObjectField(mCollapsedStatusBarFragment, "mStatusBar");
+ mStatusbarStartSide = mStatusBar.findViewById(mContext.getResources().getIdentifier("status_bar_start_side_except_heads_up", "id", mContext.getPackageName()));
+
+ mSystemIconArea = mStatusBar.findViewById(mContext.getResources().getIdentifier("statusIcons", "id", mContext.getPackageName()));
+
+
+ try {
+ mCenteredIconArea = (View) ((View) getObjectField(param.thisObject, "mCenteredIconArea")).getParent();
+ } catch (Throwable ignored) {
+ mCenteredIconArea = new LinearLayout(mContext);
+ FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(WRAP_CONTENT, MATCH_PARENT);
+ lp.gravity = Gravity.CENTER;
+ mCenteredIconArea.setLayoutParams(lp);
+ mStatusBar.addView(mCenteredIconArea);
+ }
+
+
+ placeClock();
+ setClockSize();
+ updateClockColor();
+ updateChip();
+ setupChip();
+ }
+ });
+
+ hookAllMethods(ClockClass, "updateClockVisibility", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+
+ if (param.thisObject != mClockView)
+ return;
+
+
+ if (!mClockAutoHide) return;
+
+ Clock = param.thisObject;
+
+ boolean visible = (boolean) callMethod(param.thisObject, "shouldBeVisible");
+ int visibility = visible ? View.VISIBLE : View.GONE;
+ try {
+ autoHideHandler.removeCallbacksAndMessages(null);
+ } catch (Throwable ignored) {
+
+ }
+ callMethod(param.thisObject, "setVisibility", visibility);
+ if (mClockAutoHide && visible && mScreenOn) {
+ autoHideHandler.postDelayed(() -> autoHideClock(param.thisObject), mShowDuration * 1000);
+ }
+ param.setResult(null);
+ }
+ });
+
+ hookAllMethods(ClockClass, "shouldBeVisible", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+
+ if (!mClockAutoHideLauncherSwitch) return;
+
+ if (param.thisObject != mClockView)
+ return;
+
+ Clock = param.thisObject;
+
+ boolean mClockVisibleByPolicy = getBooleanField(param.thisObject, "mClockVisibleByPolicy");
+ boolean mClockVisibleByUser = getBooleanField(param.thisObject, "mClockVisibleByUser");
+ param.setResult(!mClockAutoHideLauncher && mClockVisibleByPolicy && mClockVisibleByUser);
+ }
+ });
+
+
+ findAndHookMethod(ClockClass,
+ "getSmallTime", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (param.thisObject != mClockView)
+ return;
+ // Avoid to use stock am pm style or we will have double am/pm
+ // setObjectField(param.thisObject, "mAmPmStyle", mAmPmStyle);
+ setObjectField(param.thisObject, "mShowSeconds", mShowSeconds);
+ }
+
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (param.thisObject != mClockView)
+ return; //We don't want custom format in QS header. do we?
+
+
+ CharSequence dateString = null;
+ CharSequence amPmString = null;
+ String dateResult = "";
+ String amPmResult = "";
+ CharSequence timeResult = (CharSequence) param.getResult();
+ String result = timeResult.toString();
+ Date now = new Date();
+
+ if (mAmPmStyle != AM_PM_STYLE_GONE) {
+ amPmString = DateFormat.format("a", now).toString();
+ amPmResult = amPmString.toString().toUpperCase();
+ result = result + " " + amPmResult;
+ }
+
+ if (mClockDateDisplay != CLOCK_DATE_DISPLAY_GONE) {
+ if (mClockDateFormat == null || mClockDateFormat.isEmpty()) {
+ // Set dateString to short uppercase Weekday if empty
+ dateString = DateFormat.format("EEE", now);
+ } else {
+ dateString = DateFormat.format(mClockDateFormat, now);
+ }
+ if (mClockDateStyle == CLOCK_DATE_STYLE_LOWERCASE) {
+ // When Date style is small, convert date to uppercase
+ dateResult = dateString.toString().toLowerCase();
+ } else if (mClockDateStyle == CLOCK_DATE_STYLE_UPPERCASE) {
+ dateResult = dateString.toString().toUpperCase();
+ } else {
+ dateResult = dateString.toString();
+ }
+ result = (mClockDatePosition == STYLE_DATE_LEFT) ? dateResult + " " + result
+ : result + " " + dateResult;
+ }
+
+ SpannableStringBuilder formatted = new SpannableStringBuilder(result);
+
+ if (mAmPmStyle != AM_PM_STYLE_GONE) {
+ if (amPmString != null) {
+ int amPmStringLen = amPmString.length();
+ int timeStringOffset = timeResult.length() + 1;
+ if (mAmPmStyle == AM_PM_STYLE_SMALL) {
+ CharacterStyle style = new RelativeSizeSpan(0.7f);
+ formatted.setSpan(style, timeStringOffset,
+ timeStringOffset + amPmStringLen,
+ Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
+ }
+ }
+ }
+
+ if (mClockDateDisplay != CLOCK_DATE_DISPLAY_NORMAL) {
+ if (dateString != null) {
+ int dateStringLen = dateString.length();
+ int timeStringOffset = (mClockDatePosition == STYLE_DATE_RIGHT)
+ ? timeResult.length() + 1 : 0;
+ if (mClockDateDisplay == CLOCK_DATE_DISPLAY_GONE) {
+ formatted.delete(0, dateStringLen);
+ } else {
+ if (mClockDateDisplay == CLOCK_DATE_DISPLAY_SMALL) {
+ CharacterStyle style = new RelativeSizeSpan(0.7f);
+ formatted.setSpan(style, timeStringOffset,
+ timeStringOffset + dateStringLen,
+ Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
+ }
+ }
+ }
+ }
+ param.setResult(formatted);
+ }
+ });
+
+
+ findAndHookMethod(TaskStackListenerImpl, "onTaskStackChanged", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (mClockAutoHideLauncherSwitch) updateShowClock();
+ }
+ });
+
+ findAndHookMethod(TaskStackListenerImpl, "onTaskRemoved", int.class, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (mClockAutoHideLauncherSwitch) updateShowClock();
+ }
+ });
+
+ hookAllMethods(TaskStackListenerImpl, "onTaskMovedToFront", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (mClockAutoHideLauncherSwitch) updateShowClock();
+ }
+ });
+
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+
+ private void autoHideClock(Object clock) {
+ callMethod(clock, "setVisibility", View.GONE);
+ autoHideHandler.postDelayed(() -> updateClockVisibility(clock), mHideDuration * 1000);
+ }
+
+ private void updateClockVisibility(Object clock) {
+ if (clock != null)
+ callMethod(clock, "updateClockVisibility");
+ }
+
+ private void updateClockVisibility() {
+ if (Clock != null) {
+ callMethod(Clock, "updateClockVisibility");
+ }
+ }
+
+ private void updateClock() {
+ try {
+ mClockView.post(() -> { //the builtin update method doesn't care about the format. Just the text sadly
+ callMethod(getObjectField(mClockView, "mCalendar"), "setTimeInMillis", System.currentTimeMillis());
+
+ callMethod(mClockView, "updateClock");
+ });
+ }
+ catch (Throwable ignored){}
+ }
+
+ private void updateClockColor() {
+ if (mClockCustomColor)
+ ((TextView)mClockView).setTextColor(mClockColor);
+ else
+ ((TextView)mClockView).setTextColor(Color.WHITE);
+ }
+
+ private void placeClock() {
+ ViewGroup parent = (ViewGroup) mClockView.getParent();
+ ViewGroup targetArea = null;
+ Integer index = null;
+
+ switch (mClockPosition) {
+ case POSITION_LEFT -> {
+ targetArea = mStatusbarStartSide;
+ index = 1;
+ mClockView.setPadding(0, 0, leftClockPadding, 0);
+ }
+ case POSITION_CENTER -> {
+ targetArea = (ViewGroup) mCenteredIconArea;
+ mClockView.setPadding(rightClockPadding, 0, rightClockPadding, 0);
+ }
+ case POSITION_RIGHT -> {
+ mClockView.setPadding(rightClockPadding, 0, 0, 0);
+ targetArea = ((ViewGroup) mSystemIconArea.getParent());
+ }
+ }
+ parent.removeView(mClockView);
+ if (index != null) {
+ targetArea.addView(mClockView, index);
+ } else {
+ targetArea.addView(mClockView);
+ }
+ }
+
+ private void setClockSize() {
+ if (mClockView == null) return;
+ mClockView.setTextSize(TypedValue.COMPLEX_UNIT_SP, mClockSize);
+ }
+
+ private void updateChip() {
+ mAccent = getPrimaryColor(mContext);
+
+ mClockChipDrawale.setShape(GradientDrawable.RECTANGLE);
+ mClockChipDrawale.setGradientType(GradientDrawable.LINEAR_GRADIENT);
+ mClockChipDrawale.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
+ if (chipRoundCorners) {
+ mClockChipDrawale.setCornerRadii(new float[]{
+ dp2px(mContext, chipTopSxRound), dp2px(mContext, chipTopSxRound),
+ dp2px(mContext, chipTopDxRound), dp2px(mContext, chipTopDxRound),
+ dp2px(mContext, chipBottomDxRound), dp2px(mContext, chipBottomDxRound),
+ dp2px(mContext, chipBottomSxRound), dp2px(mContext, chipBottomSxRound)
+ });
+ } else {
+ mClockChipDrawale.setCornerRadius(0);
+ }
+
+ if (chipStyle == 0) {
+ if (chipUseAccent)
+ mClockChipDrawale.setColors(new int[]{mAccent, mAccent});
+ else if (chipUseGradient)
+ mClockChipDrawale.setColors(new int[]{chipGradient1, chipGradient2});
+ else
+ mClockChipDrawale.setColors(new int[]{chipGradient1, chipGradient1});
+ mClockChipDrawale.setStroke(0, Color.TRANSPARENT);
+ } else {
+ mClockChipDrawale.setColors(new int[]{Color.TRANSPARENT, Color.TRANSPARENT});
+ mClockChipDrawale.setStroke(chipStrokeWidth, chipUseAccent ? mAccent : chipGradient1);
+ }
+ mClockChipDrawale.invalidateSelf();
+ }
+
+ private void setupChip() {
+ if (clockChip) {
+ mClockView.setPadding(dp2px(mContext, 4), 0, dp2px(mContext, 4), 0);
+ mClockView.setBackground(mClockChipDrawale);
+ } else {
+ mClockView.setPadding(0, 0, 0, 0);
+ mClockView.setBackground(null);
+ }
+ }
+
+ private void updateShowClock() {
+
+
+ ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
+ List processes = am.getRunningAppProcesses();
+
+ String foregroundApp = null;
+ for (ActivityManager.RunningAppProcessInfo processInfo : processes) {
+ if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
+ foregroundApp = processInfo.processName;
+ break;
+ }
+ }
+
+ if (TextUtils.isEmpty(foregroundApp)) return;
+ final boolean clockAutoHide = foregroundApp.equals(getDefaultLauncherPackageName());
+ if (mClockAutoHideLauncher != clockAutoHide) {
+ mClockAutoHideLauncher = clockAutoHide;
+ log(TAG + "Updating Clock");
+ callMethod(Clock, "updateClock");
+ autoHideHandler.post(() -> updateClockVisibility(Clock));
+ }
+ }
+
+ private String getDefaultLauncherPackageName() {
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.addCategory(Intent.CATEGORY_HOME);
+ ResolveInfo resolveInfo = mContext.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
+ if (resolveInfo != null) {
+ return resolveInfo.activityInfo.packageName;
+ }
+ return null;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarIcons.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarIcons.java
new file mode 100644
index 000000000..b92fdc016
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarIcons.java
@@ -0,0 +1,60 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.utils.Constants.Packages.SYSTEM_UI;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.Context;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class StatusbarIcons extends XposedMods {
+
+ private final static String listenPackage = SYSTEM_UI;
+ private boolean hideBluetooth;
+
+ public StatusbarIcons(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ hideBluetooth = Xprefs.getBoolean("hide_bluetooth_when_disconnected", false);
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ Class> OplusPhoneStatusBarPolicyExImpl = findClass("com.oplus.systemui.statusbar.phone.OplusPhoneStatusBarPolicyExImpl", lpparam.classLoader);
+
+ // private final void updateBluetoothIcon(int i, int i2, CharSequence charSequence, boolean z) {
+ findAndHookMethod(OplusPhoneStatusBarPolicyExImpl, "updateBluetoothIcon",
+ int.class,
+ int.class,
+ CharSequence.class,
+ boolean.class, new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ boolean enabled = (boolean) param.args[3];
+
+ if (!enabled || !hideBluetooth) return;
+
+ Object bluetoothController = getObjectField(param.thisObject, "bluetoothController");
+ boolean connected = (boolean) callMethod(bluetoothController, "isBluetoothConnected");
+
+ if (!connected)
+ param.setResult(connected);
+ }
+ });
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarMods.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarMods.java
new file mode 100644
index 000000000..d11ce52e1
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarMods.java
@@ -0,0 +1,808 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.hookAllMethods;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.callStaticMethod;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.findClassIfExists;
+import static de.robv.android.xposed.XposedHelpers.getIntField;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static de.robv.android.xposed.XposedHelpers.setObjectField;
+import static it.dhd.oxygencustomizer.xposed.ResourceManager.resparams;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider.convertGammaToLinearFloat;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.SettingsLibUtilsProvider.getGammaMax;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.hardware.display.DisplayManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.GestureDetector;
+import android.view.HapticFeedbackConstants;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.res.ResourcesCompat;
+
+import java.util.Arrays;
+import java.util.List;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_InitPackageResources;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+
+public class StatusbarMods extends XposedMods {
+
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+
+ // general use
+ private Object PSBV;
+ private View mStatusBarContents = null;
+ private static final int SHADE = 0; //frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarState.java - screen unlocked - pulsing means screen is locked - shade locked means (Q)QS is open on lockscreen
+ private static final float PADDING_DEFAULT = -0.5f;
+ private static float SBPaddingStart = 0, SBPaddingEnd = 0;
+ private boolean statusBarPadding;
+ private Object NotificationPanelViewController;
+ boolean oneFingerPulldownEnabled = false;
+ boolean oneFingerPullupEnabled = false;
+ private int pullDownSide = PULLDOWN_SIDE_RIGHT;
+ private static final int PULLDOWN_SIDE_RIGHT = 1;
+ @SuppressWarnings("unused")
+ private static final int PULLDOWN_SIDE_LEFT = 2;
+ private static final int STATUSBAR_MODE_SHADE = 0;
+ private static final int STATUSBAR_MODE_KEYGUARD = 1;
+ /**
+ * @noinspection unused
+ */
+ private static final int STATUSBAR_MODE_SHADE_LOCKED = 2;
+ private static float statusbarPortion = 0.25f;
+
+ private float mMinimumBacklight;
+ private float mMaximumBacklight;
+ private int mInitialTouchX;
+ private int mInitialTouchY;
+ private int mLinger;
+ private int mQuickQsOffsetHeight;
+ private boolean mBrightnessControl;
+ private boolean mJustPeeked;
+ private Object OplusBrightnessControllerExt = null;
+ private static final float BRIGHTNESS_CONTROL_PADDING = 0.15f;
+ private static final int BRIGHTNESS_CONTROL_LONG_PRESS_TIMEOUT = 750; // ms
+ private static final int BRIGHTNESS_CONTROL_LINGER_THRESHOLD = 20;
+ private DisplayMetrics mDisplayMetrics = null;
+ private DisplayManager mDisplayManager = null;
+ private Object mCollapsedStatusBarFragment = null;
+ private ViewGroup mStatusBar;
+ private boolean doubleTapToSleepStatusbarEnabled;
+ GestureDetector mLockscreenDoubleTapToSleep; //event callback for double tap to sleep detection of statusbar only
+
+ // Padding Vars
+ private String mLeftDefaultPad = null, mRightDefaultPad = null;
+ private float mLeftPad;
+ private float mRightPad;
+ private float mTopPad;
+ private boolean mKeyguardShowing = false;
+ // End Padding Vars
+
+ private Object mActivityStarter;
+ private Class> NotificationIconAreaController;
+ private Object mNotificationIconAreaController = null;
+ private Object mNotificationIconContainer = null;
+ private boolean mNewIconStyle;
+ private boolean mNotificationCount;
+
+ public StatusbarMods(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ if (Xprefs == null) return;
+
+ // Quick Pulldown
+ oneFingerPulldownEnabled = Xprefs.getBoolean("quick_pulldown", false);
+ oneFingerPullupEnabled = Xprefs.getBoolean("quick_collapse", false);
+ pullDownSide = Integer.parseInt(Xprefs.getString("quick_pulldown_side", "1"));
+ statusbarPortion = Xprefs.getSliderFloat("quick_pulldown_length", 25f) / 100f;
+
+ // Double Tap to Sleep
+ doubleTapToSleepStatusbarEnabled = Xprefs.getBoolean("double_tap_sleep_statusbar", false);
+
+ // Brightness Control
+ mBrightnessControl = Xprefs.getBoolean("brightness_control", false);
+
+ // Padding
+ mLeftPad = TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ Xprefs.getSliderFloat("statusbar_left_padding", PADDING_DEFAULT),
+ mContext.getResources().getDisplayMetrics());
+ mTopPad = TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ Xprefs.getSliderFloat("statusbar_top_padding", 0f),
+ mContext.getResources().getDisplayMetrics());
+ mRightPad = TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ Xprefs.getSliderFloat("statusbar_right_padding", PADDING_DEFAULT),
+ mContext.getResources().getDisplayMetrics());
+ statusBarPadding = Xprefs.getBoolean("statusbar_padding_enabled", false);
+
+ List paddings = Xprefs.getSliderValues("statusbarPaddings", 0);
+
+ // Notifications
+ mNewIconStyle = Xprefs.getBoolean("statusbar_notification_app_icon", false);
+ mNotificationCount = Xprefs.getBoolean("statusbar_notification_count", false);
+
+ if (paddings.size() > 1) {
+ SBPaddingStart = paddings.get(0);
+ SBPaddingEnd = 100f - paddings.get(1);
+ }
+
+ if (Key.length > 0) {
+ switch (Key[0]) {
+ case "statusbarPaddings",
+ "statusbar_top_padding" -> updateStatusbarHeight();
+ case "statusbar_padding_enabled" -> updateResources();
+ case "statusbar_notification_app_icon" -> updateNotificationIcons();
+ case "statusbar_notification_count" -> enableCount();
+ }
+ }
+
+ }
+
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+ mLockscreenDoubleTapToSleep = new GestureDetector(mContext, new GestureDetector.SimpleOnGestureListener() {
+ @Override
+ public boolean onDoubleTap(@NonNull MotionEvent e) {
+ if (mStatusBar!=null)
+ mStatusBar.performHapticFeedback(HapticFeedbackConstants.CONTEXT_CLICK);
+ SystemUtils.sleep();
+ return true;
+ }
+ });
+
+ Class> NotificationPanelViewControllerClass = findClass("com.android.systemui.shade.NotificationPanelViewController", lpparam.classLoader);
+ Class> PhoneStatusBarView = findClass("com.android.systemui.statusbar.phone.PhoneStatusBarView", lpparam.classLoader);
+ Class> PhoneStatusBarViewControllerClass = findClass("com.android.systemui.statusbar.phone.PhoneStatusBarViewController", lpparam.classLoader);
+ Class> QSSecurityFooterUtilsClass = findClass("com.android.systemui.qs.QSSecurityFooterUtils", lpparam.classLoader);
+ Class> QuickStatusBarHeaderClass = findClass("com.oplus.systemui.qs.OplusQuickStatusBarHeader", lpparam.classLoader);
+
+ hookAllConstructors(QSSecurityFooterUtilsClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mActivityStarter = getObjectField(param.thisObject, "mActivityStarter");
+ }
+ });
+
+ final ClickListener clickListener = new ClickListener();
+
+ //marking clock instances for recognition and setting click actions on some icons
+ hookAllMethods(QuickStatusBarHeaderClass,
+ "onFinishInflate", new XC_MethodHook() {
+ @SuppressLint("DiscouragedApi")
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ //Getting QS text color for Network traffic
+ try {
+ //Clickable icons
+ Object mBatteryRemainingIcon = getObjectField(param.thisObject, "mBatteryView");
+
+ callMethod(mBatteryRemainingIcon, "setOnClickListener", clickListener);
+ callMethod(mBatteryRemainingIcon, "setOnLongClickListener", clickListener);
+ } catch (Throwable e) {e.printStackTrace();}
+ }
+ });
+
+ try { //13 QPR3
+ hookTouchHandler(PhoneStatusBarViewControllerClass);
+ }catch (Throwable ignored){}
+
+ hookAllConstructors(PhoneStatusBarView, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ PSBV = param.thisObject;
+ }
+ });
+
+ hookAllMethods(PhoneStatusBarView, "updateStatusBarHeight", new XC_MethodHook() {
+ @SuppressLint("DiscouragedApi")
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mStatusBarContents = ((View) param.thisObject).findViewById(mContext.getResources().getIdentifier("status_bar_contents", "id", listenPackage));
+
+ if (!statusBarPadding) return;
+
+ int screenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
+
+ int paddingStart = SBPaddingStart == PADDING_DEFAULT
+ ? mContext.getResources().getIdentifier("status_bar_padding_start", "type/dimen", listenPackage)
+ : Math.round(SBPaddingStart * screenWidth / 100f);
+
+ int paddingEnd = SBPaddingEnd == PADDING_DEFAULT
+ ? mContext.getResources().getIdentifier("status_bar_padding_end", "type/dimen", listenPackage)
+ : Math.round(SBPaddingEnd * screenWidth / 100f);
+ mStatusBarContents.setPaddingRelative(paddingStart, (int) mTopPad, paddingEnd, 0);
+ }
+ });
+
+ hookAllConstructors(NotificationPanelViewControllerClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ NotificationPanelViewController = param.thisObject;
+ Object mTouchHandler = getObjectField(param.thisObject, "mTouchHandler");
+ GestureDetector pullUpDetector = new GestureDetector(mContext, getPullUpListener());
+ try {
+ hookTouchHandler(getObjectField(param.thisObject, "mStatusBarViewTouchEventHandler").getClass());
+ }
+ catch (Throwable ignored){}
+ hookAllMethods(mTouchHandler.getClass(), "onTouchEvent", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (oneFingerPullupEnabled
+ && STATUSBAR_MODE_KEYGUARD != (int) getObjectField(NotificationPanelViewController, "mBarState")) {
+ pullUpDetector.onTouchEvent((MotionEvent) param.args[0]);
+ }
+ }
+ });
+ }
+ });
+
+ hookAllMethods(NotificationPanelViewControllerClass, "createTouchHandler", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ hookTouchHandler(param.getResult().getClass());
+ }
+ });
+
+ Class> OplusQSFooterImpl = findClass("com.oplus.systemui.qs.OplusQSFooterImpl", lpparam.classLoader);
+ LongClickListener onLongClick = new LongClickListener();
+ hookAllMethods(OplusQSFooterImpl, "onFinishInflate", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) {
+ View mSettingsButton = (View) getObjectField(param.thisObject, "mSettingsButton");
+ try{
+ callMethod(mSettingsButton, "setOnLongClickListener", onLongClick);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+ String QSExpandMethodName = Arrays.stream(NotificationPanelViewControllerClass.getMethods())
+ .anyMatch(m -> m.getName().equals("expandToQs"))
+ ? "expandToQs" //A14
+ : "expandWithQs"; //A13
+
+
+ Class> CollapsedStatusBarFragmentClass = findClassIfExists("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment", lpparam.classLoader);
+
+ hookAllConstructors(CollapsedStatusBarFragmentClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mCollapsedStatusBarFragment = param.thisObject;
+ }
+ });
+
+ findAndHookMethod(CollapsedStatusBarFragmentClass,
+ "onViewCreated", View.class, Bundle.class, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mStatusBar = (ViewGroup) getObjectField(mCollapsedStatusBarFragment, "mStatusBar");
+
+ }
+ });
+
+
+ // Stole Keyguard is showing
+ Class> KayguardUpdateMonitor = findClass("com.android.keyguard.KeyguardUpdateMonitor", lpparam.classLoader);
+ hookAllMethods(KayguardUpdateMonitor, "setKeyguardShowing", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mKeyguardShowing = (boolean) param.args[0];
+ }
+ });
+
+ Class> QuickSettingsController = findClass("com.android.systemui.shade.QuickSettingsController", lpparam.classLoader);
+ Class> CentralSurfacesImpl = findClass("com.android.systemui.statusbar.phone.CentralSurfacesImpl", lpparam.classLoader);
+
+ hookAllMethods(QuickSettingsController, "isOpenQsEvent", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+
+ if (!oneFingerPulldownEnabled) return;
+
+ MotionEvent motionEvent = (MotionEvent) param.args[0];
+ boolean override = false;
+ if (oneFingerPulldownEnabled) {
+ //mGestureDetector.onTouchEvent(event);
+ Rect displayBounds = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getCurrentWindowMetrics().getBounds();
+ override = isTouchInRegion(motionEvent, displayBounds.width());
+ }
+
+ if (override) {
+ param.setResult(true);
+ }
+
+ }
+ });
+
+ Class> OplusBrightnessControllerExImpl = findClass("com.oplus.systemui.qs.impl.OplusBrightnessControllerExImpl", lpparam.classLoader);
+
+
+ hookAllConstructors(OplusBrightnessControllerExImpl, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ OplusBrightnessControllerExt = param.thisObject;
+ }
+ });
+ hookAllMethods(OplusBrightnessControllerExImpl, "setBrightnessMin", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mMinimumBacklight = (int) param.args[0];
+ }
+ });
+ hookAllMethods(OplusBrightnessControllerExImpl, "setBrightnessMax", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mMaximumBacklight = (int) param.args[0];
+ }
+ });
+
+ hookAllConstructors(CentralSurfacesImpl, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ Log.d("StatusbarMods", "afterHookedMethod CentralSurfacesImpl");
+ mDisplayMetrics = (DisplayMetrics) getObjectField(param.thisObject, "mDisplayMetrics");
+ mDisplayManager = (DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE);
+ }
+ });
+
+ Class> NotificationStackScrollLayoutExtImpl = findClass("com.oplus.systemui.statusbar.notification.stack.NotificationStackScrollLayoutExtImpl", lpparam.classLoader);
+ findAndHookMethod(NotificationStackScrollLayoutExtImpl, "initView", Context.class, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mQuickQsOffsetHeight = getIntField(param.thisObject, "mQuickQsOffsetHeight");
+ }
+ });
+
+
+ hookAllMethods(PhoneStatusBarViewControllerClass, "onTouch", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+
+ if (!mBrightnessControl) return;
+
+ MotionEvent event =
+ param.args[0] instanceof MotionEvent
+ ? (MotionEvent) param.args[0]
+ : (MotionEvent) param.args[1];
+
+ final int action = event.getAction();
+ final int x = (int) event.getRawX();
+ final int y = (int) event.getRawY();
+ if (action == MotionEvent.ACTION_DOWN) {
+ if (y < mQuickQsOffsetHeight) {
+ mLinger = 0;
+ mInitialTouchX = x;
+ mInitialTouchY = y;
+ mJustPeeked = true;
+ handler.removeCallbacks(mLongPressed);
+ handler.postDelayed(mLongPressed, BRIGHTNESS_CONTROL_LONG_PRESS_TIMEOUT);
+ }
+ } else if (action == MotionEvent.ACTION_MOVE) {
+ if (y < mQuickQsOffsetHeight && mJustPeeked) {
+ if (mLinger > BRIGHTNESS_CONTROL_LINGER_THRESHOLD) {
+ //mStatusBar.performHapticFeedback(HapticFeedbackConstants.SEGMENT_TICK);
+ adjustBrightness(x);
+ } else {
+ final int xDiff = Math.abs(x - mInitialTouchX);
+ final int yDiff = Math.abs(y - mInitialTouchY);
+ final int touchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop();
+ if (xDiff > yDiff) {
+ mLinger++;
+ }
+ if (xDiff > touchSlop || yDiff > touchSlop) {
+ handler.removeCallbacks(mLongPressed);
+ }
+ }
+ } else {
+ if (y > mQuickQsOffsetHeight) {
+ mJustPeeked = false;
+ }
+ handler.removeCallbacks(mLongPressed);
+ }
+ } else if (action == MotionEvent.ACTION_UP
+ || action == MotionEvent.ACTION_CANCEL) {
+ handler.removeCallbacks(mLongPressed);
+ }
+ //mGestureDetector.onTouchEvent(event);
+
+ }
+ });
+
+ Class> OplusQsMediaPanelView = findClass("com.oplus.systemui.qs.media.OplusQsMediaPanelView", lpparam.classLoader);
+
+ // Notifications
+ NotificationIconAreaController = findClass("com.android.systemui.statusbar.phone.NotificationIconAreaController", lpparam.classLoader);
+ hookAllConstructors(NotificationIconAreaController, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mNotificationIconAreaController = param.thisObject;
+ }
+ });
+ Class> NotificationIconContainer = findClass("com.android.systemui.statusbar.phone.NotificationIconContainer", lpparam.classLoader);
+ hookAllConstructors(NotificationIconContainer, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mNotificationIconContainer = param.thisObject;
+ }
+ });
+ Class> ScalingDrawableWrapper = findClass("com.android.systemui.statusbar.ScalingDrawableWrapper", lpparam.classLoader);
+ Class> FwkResIdLoader = findClass("com.oplusos.systemui.common.util.FwkResIdLoader", lpparam.classLoader);
+ Class> DrawableSize = findClass("com.android.systemui.util.drawable.DrawableSize", lpparam.classLoader);
+ Class> StatusBarIconView = findClass("com.android.systemui.statusbar.StatusBarIconView", lpparam.classLoader);
+ findAndHookMethod(StatusBarIconView,
+ "getIcon",
+ Context.class,
+ Context.class,
+ "com.android.internal.statusbar.StatusBarIcon",
+ new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!mNewIconStyle) return;
+ Drawable icon = null;
+ Object statusBarIcon = param.args[2];
+
+ String pkgName = (String) getObjectField(statusBarIcon, "pkg");
+ int userId = (int) callMethod(getObjectField(statusBarIcon, "user"), "getIdentifier");
+ try {
+ if (!pkgName.contains("systemui")) {
+ icon = mContext.getPackageManager().getApplicationIcon(pkgName);
+ }
+ } catch (Throwable e) {
+ return;
+ }
+
+ int dimen;
+ if (icon != null) {
+ dimen = 48;
+ float density = mContext.getResources().getDisplayMetrics().density;
+ int dimensionPixelSize = Math.round(dimen * density);
+ Drawable icon2 = (Drawable) callStaticMethod(DrawableSize, "downscaleToSize", mContext.getResources(), icon, dimensionPixelSize, dimensionPixelSize);
+ if (icon2 != null) {
+ param.setResult(icon2);
+ }
+ }
+
+
+ }
+ });
+
+ hookAllConstructors(StatusBarIconView, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ Paint mNumberPain = (Paint) getObjectField(param.thisObject, "mNumberPain");
+ mNumberPain.setColor(Color.RED);
+
+ }
+ });
+
+ hookAllMethods(StatusBarIconView, "set", new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ if (!mNotificationCount) return;
+ Object statusBarIcon = param.args[0];
+ Object statusBarIcon3 = getObjectField(param.thisObject, "mIcon");
+ boolean z4 = statusBarIcon3 != null && getIntField(statusBarIcon3, "number") == getIntField(statusBarIcon, "number");
+ Drawable mNumberBackground = (Drawable) getObjectField(param.thisObject, "mNumberBackground");
+ if (!z4) {
+ if (getIntField(statusBarIcon, "number") > 0) {
+ if (mNumberBackground == null) {
+ log("mNumberBackground == null");
+ GradientDrawable gradient = new GradientDrawable(GradientDrawable.Orientation.BOTTOM_TOP, new int[]{
+ Color.BLACK,
+ Color.BLACK
+ });
+ Drawable d = ResourcesCompat.getDrawable(mContext.getResources(),
+ mContext.getResources().getIdentifier("ic_notification_overlay", "drawable", listenPackage),
+ mContext.getTheme());
+ setObjectField(param.thisObject, "mNumberBackground", gradient);
+ }
+ /*Paint mNumberPain = (Paint) getObjectField(param.thisObject, "mNumberPain");
+ mNumberPain.setColor(Color.RED);*/
+ log("placeNumber");
+ if (getObjectField(param.thisObject, "mIcon") != null) {
+ callMethod(param.thisObject, "placeNumber");
+ log("placeNumber");
+ }
+
+ //callMethod(param.thisObject, "placeNumber");
+ } else {
+ setObjectField(param.thisObject, "mNumberBackground", (Drawable) null);
+ setObjectField(param.thisObject, "mNumberText", null);
+ }
+ log("invalidate"
+ );
+ callMethod(param.thisObject, "invalidate");
+ }
+
+
+ }
+ });
+
+ }
+
+ private void enableCount() {
+ XC_InitPackageResources.InitPackageResourcesParam ourResparam = resparams.get(Constants.Packages.SYSTEM_UI);
+ if (ourResparam == null) return;
+ log("enableCount");
+ ourResparam.res.setReplacement("com.android.systemui", "bool", "config_statusBarShowNumber", mNotificationCount);
+ }
+
+ //region icon tap related
+ class ClickListener implements View.OnClickListener, View.OnLongClickListener {
+ public ClickListener() {}
+
+ @Override
+ public void onClick(View v) {
+ String name = mContext.getResources().getResourceName(v.getId());
+ if (name.endsWith("batteryRemainingIcon")) {
+ showBatteryPage();
+ }
+ }
+
+ @Override
+ public boolean onLongClick(View v) {
+ String name = mContext.getResources().getResourceName(v.getId());
+
+ if(name.endsWith("batteryRemainingIcon")) {
+ showBatteryPage();
+ return true;
+ }
+ return false;
+ }
+ }
+
+ class LongClickListener implements View.OnLongClickListener {
+ @Override
+ public boolean onLongClick(View v) {
+ String name = mContext.getResources().getResourceName(v.getId());
+
+ if (name.endsWith("settings_button")) {
+ openOxygenCustomizer();
+ return true;
+ }
+ return false;
+ }
+ }
+
+ private void openOxygenCustomizer() {
+ Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(BuildConfig.APPLICATION_ID);
+ callMethod(mActivityStarter, "postStartActivityDismissingKeyguard", intent, 0 /* dismissShade */);
+ }
+
+ private void showBatteryPage() {
+ callMethod(mActivityStarter, "postStartActivityDismissingKeyguard", new Intent(Intent.ACTION_POWER_USAGE_SUMMARY), 0);
+ }
+ //endregion
+
+ @SuppressLint("DiscouragedApi")
+ private void updatePaddings(Object thisObject) {
+ if (mStatusBarContents == null) return;
+
+ int screenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
+
+ int paddingStart = SBPaddingStart == PADDING_DEFAULT
+ ? mContext.getResources().getIdentifier("status_bar_padding_start", "dimen", listenPackage)
+ : Math.round(SBPaddingStart * screenWidth / 100f);
+
+ int paddingEnd = SBPaddingEnd == PADDING_DEFAULT
+ ? mContext.getResources().getIdentifier("status_bar_padding_end", "dimen", listenPackage)
+ : Math.round(SBPaddingEnd * screenWidth / 100f);
+
+ mStatusBarContents.setPaddingRelative(
+ paddingStart,
+ (int) mTopPad,
+ paddingEnd,
+ mStatusBarContents.getPaddingBottom());
+
+ }
+
+ final Handler handler = new Handler(Looper.getMainLooper());
+ Runnable mLongPressed = this::onLongPressBrightnessChange;
+
+ private void onLongPressBrightnessChange() {
+ if (mStatusBar != null)
+ mStatusBar.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
+ adjustBrightness(mInitialTouchX);
+ mLinger = BRIGHTNESS_CONTROL_LINGER_THRESHOLD + 1;
+ }
+
+ private void adjustBrightness(int x) {
+ if (mDisplayMetrics == null) return;
+ float raw = ((float) x) / mDisplayMetrics.widthPixels;
+
+ // Add a padding to the brightness control on both sides to
+ // make it easier to reach min/max brightness
+ float padded = Math.min(1.0f - BRIGHTNESS_CONTROL_PADDING,
+ Math.max(BRIGHTNESS_CONTROL_PADDING, raw));
+ float value = (padded - BRIGHTNESS_CONTROL_PADDING) /
+ (1 - (2.0f * BRIGHTNESS_CONTROL_PADDING));
+
+ if (mStatusBar != null)
+ mStatusBar.performHapticFeedback(HapticFeedbackConstants.CLOCK_TICK);
+
+ final float val = convertGammaToLinearFloat(
+ Math.round(value * getGammaMax()),
+ mMinimumBacklight, mMaximumBacklight);
+ callMethod(mDisplayManager, "setTemporaryBrightness", 0, val);
+ callMethod(mDisplayManager, "setTemporaryAutoBrightnessAdjustment", val);
+ callMethod(OplusBrightnessControllerExt, "setBrightness", (int) val);
+ }
+
+ private GestureDetector.OnGestureListener getPullDownLPListener(String QSExpandMethodName) {
+ return new LongpressListener(true) {
+ @Override
+ public boolean onFling(@Nullable MotionEvent e1, @NonNull MotionEvent e2, float velocityX, float velocityY) {
+ if (STATUSBAR_MODE_SHADE == (int) getObjectField(NotificationPanelViewController, "mBarState")
+ && isValidFling(e1, e2, velocityY, .15f, 0.01f)) {
+ callMethod(NotificationPanelViewController, QSExpandMethodName);
+ return true;
+ }
+ return false;
+ }
+ };
+ }
+
+ private GestureDetector.OnGestureListener getPullUpListener() {
+ return new LongpressListener(false) {
+ @Override
+ public boolean onFling(@Nullable MotionEvent e1, @NonNull MotionEvent e2, float velocityX, float velocityY) {
+ if (isValidFling(e1, e2, velocityY, -.15f, -.06f)) {
+ callMethod(NotificationPanelViewController, "collapse", true, 1f);
+ return true;
+ }
+ return false;
+ }
+ };
+ }
+
+ private boolean isValidFling(MotionEvent e1, MotionEvent e2, float velocityY, float speedFactor, float heightFactor) {
+ Rect displayBounds = ((WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE)).getCurrentWindowMetrics().getBounds();
+
+ try {
+ return (e2.getY() - e1.getY()) / heightFactor > displayBounds.height() //enough travel in right direction
+ && isTouchInRegion(e1, displayBounds.width()) //start point in hot zone
+ && (velocityY / speedFactor > displayBounds.height()); //enough speed in right direction
+ } catch (Throwable ignored) {
+ return false;
+ }
+ }
+
+ private boolean isTouchInRegion(MotionEvent motionEvent, float width) {
+ float x = motionEvent.getX();
+ float region = width * statusbarPortion;
+
+ return (pullDownSide == PULLDOWN_SIDE_RIGHT)
+ ? width - region < x
+ : x < region;
+ }
+
+ private void hookTouchHandler(Class> TouchHanlderClass) {
+ XC_MethodHook touchHook = new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (!doubleTapToSleepStatusbarEnabled) return;
+
+ //double tap to sleep, statusbar only
+ if (!(boolean) getObjectField(NotificationPanelViewController, "mPulsing")
+ && !(boolean) getObjectField(NotificationPanelViewController, "mDozing")
+ && (int) getObjectField(NotificationPanelViewController, "mBarState") == SHADE
+ && (boolean) callMethod(NotificationPanelViewController, "isFullyCollapsed")) {
+ mLockscreenDoubleTapToSleep.onTouchEvent((MotionEvent) param.args[param.args.length - 1]);
+ }
+ }
+ };
+
+ hookAllMethods(TouchHanlderClass, "onTouch", touchHook); //13 QPR2
+ hookAllMethods(TouchHanlderClass, "handleTouchEvent", touchHook); //A13 R18
+ }
+
+ private void updateStatusbarHeight() {
+ try {
+ callMethod(PSBV, "updateStatusBarHeight");
+ } catch (Throwable ignored) {}
+ }
+
+ private void updateResources() {
+ try {
+ callMethod(PSBV, "updateResources");
+ } catch (Throwable ignored) {}
+ try {
+ callMethod(PSBV, "updateLayoutForCutout");
+ } catch (Throwable ignored) {}
+ try {
+ callMethod(PSBV, "requestLayout");
+ } catch (Throwable ignored) {}
+ }
+ private void updateNotificationIcons() {
+ try {
+ callMethod(mNotificationIconAreaController, "updateStatusBarIcons");
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ try {
+ callMethod(mNotificationIconContainer, "updateState");
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+
+ private static class LongpressListener implements GestureDetector.OnGestureListener {
+ final boolean mDetectLongpress;
+
+ public LongpressListener(boolean detectLongpress) {
+ mDetectLongpress = detectLongpress;
+ }
+
+ @Override
+ public boolean onDown(@NonNull MotionEvent e) {
+ return false;
+ }
+
+ @Override
+ public void onShowPress(@NonNull MotionEvent e) {
+ }
+
+ @Override
+ public boolean onSingleTapUp(@NonNull MotionEvent e) {
+ return false;
+ }
+
+ @Override
+ public boolean onScroll(@Nullable MotionEvent e1, @NonNull MotionEvent e2, float distanceX, float distanceY) {
+ return false;
+ }
+
+ @Override
+ public void onLongPress(@NonNull MotionEvent e) {
+ }
+
+ @Override
+ public boolean onFling(@Nullable MotionEvent e1, @NonNull MotionEvent e2, float velocityX, float velocityY) {
+ return false;
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarNotification.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarNotification.java
new file mode 100644
index 000000000..663e22ba4
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/hooks/systemui/statusbar/StatusbarNotification.java
@@ -0,0 +1,112 @@
+package it.dhd.oxygencustomizer.xposed.hooks.systemui.statusbar;
+
+import static de.robv.android.xposed.XposedBridge.hookAllConstructors;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
+import static de.robv.android.xposed.XposedHelpers.findClass;
+import static de.robv.android.xposed.XposedHelpers.findClassIfExists;
+import static de.robv.android.xposed.XposedHelpers.getObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.view.View;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+import it.dhd.oxygencustomizer.utils.Constants;
+import it.dhd.oxygencustomizer.xposed.XposedMods;
+
+public class StatusbarNotification extends XposedMods {
+
+ private final String TAG = this.getClass().getSimpleName() + ": ";
+ private static final String listenPackage = Constants.Packages.SYSTEM_UI;
+ private Object mCollapsedStatusBarFragment = null;
+ private View mStatusBar;
+ private boolean removeChargingCompleteNotification, removeDevMode, removeFlashlightNotification, removeLowBattery;
+
+ public StatusbarNotification(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void updatePrefs(String... Key) {
+ removeChargingCompleteNotification = Xprefs.getBoolean("remove_charging_complete_notification", false);
+ removeDevMode = Xprefs.getBoolean("remove_dev_mode", false);
+ removeFlashlightNotification = Xprefs.getBoolean("remove_flashlight_notification", false);
+ removeLowBattery = Xprefs.getBoolean("remove_low_battery_notification", false);
+
+ }
+
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (!lpparam.packageName.equals(listenPackage)) return;
+
+
+
+ Class> CollapsedStatusBarFragmentClass = findClassIfExists("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment", lpparam.classLoader);
+
+ hookAllConstructors(CollapsedStatusBarFragmentClass, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mCollapsedStatusBarFragment = param.thisObject;
+ }
+ });
+
+ findAndHookMethod(CollapsedStatusBarFragmentClass,
+ "onViewCreated", View.class, Bundle.class, new XC_MethodHook() {
+ @Override
+ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
+ mStatusBar = (View) getObjectField(mCollapsedStatusBarFragment, "mStatusBar");
+ }
+ });
+
+ //Class> OplusGutsContent = findClass("com.oplus.systemui.statusbar.notification.row.OpNotificationGuts.OplusGutsContent", lpparam.classLoader);
+ //Class> NotificationMenuRowExtImpl = findClass("com.oplus.systemui.statusbar.notification.row.NotificationMenuRowExtImpl", lpparam.classLoader);
+
+ Class> OplusPowerNotificationWarnings = findClass("com.oplus.systemui.statusbar.notification.power.OplusPowerNotificationWarnings", lpparam.classLoader);
+ findAndHookMethod(OplusPowerNotificationWarnings, "showChargeErrorDialog",
+ int.class, new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (removeChargingCompleteNotification && (int) param.args[0] == 7) {
+ param.setResult(null);
+ }
+ }
+ });
+
+ findAndHookMethod(OplusPowerNotificationWarnings, "showLowBatteryDialog",
+ Context.class, new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (removeLowBattery) param.setResult(null);
+ }
+ });
+
+ Class> FlashlightNotification = findClass("com.oplus.systemui.statusbar.notification.flashlight.FlashlightNotification", lpparam.classLoader);
+ findAndHookMethod(FlashlightNotification, "sendNotification",
+ boolean.class, new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (removeFlashlightNotification) param.setResult(null);
+ }
+ });
+
+ Class> SystemPromptController = findClass("com.oplus.systemui.statusbar.controller.SystemPromptController", lpparam.classLoader);
+ findAndHookMethod(SystemPromptController, "updateDeveloperMode", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
+ if (removeDevMode) param.setResult(null);
+ }
+ });
+
+ }
+
+ @Override
+ public boolean listensTo(String packageName) {
+ return listenPackage.equals(packageName);
+ }
+
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/AlphaRefreshedPaint.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/AlphaRefreshedPaint.java
new file mode 100644
index 000000000..1daa2dc66
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/AlphaRefreshedPaint.java
@@ -0,0 +1,18 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import android.graphics.Paint;
+
+public class AlphaRefreshedPaint extends Paint {
+ public AlphaRefreshedPaint(int flag) {
+ super(flag);
+ }
+
+ @Override
+ public void setColor(int color)
+ {
+ int alpha = getAlpha();
+
+ super.setColor(color);
+ setAlpha(alpha);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ArcProgressWidget.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ArcProgressWidget.java
new file mode 100644
index 000000000..3f81acde1
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ArcProgressWidget.java
@@ -0,0 +1,77 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BlendMode;
+import android.graphics.BlendModeColorFilter;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.RectF;
+import android.graphics.Typeface;
+import android.graphics.drawable.Drawable;
+
+import androidx.annotation.Nullable;
+
+public class ArcProgressWidget {
+
+ public static Bitmap generateBitmap(Context context, int percentage, String textInside, int textInsideSizePx, @Nullable String textBottom, int textBottomSizePx, int progressColor) {
+ return generateBitmap(context, percentage, textInside, textInsideSizePx, null, 28, textBottom, textBottomSizePx, progressColor);
+ }
+
+ public static Bitmap generateBitmap(Context context, int percentage, String textInside, int textInsideSizePx, @Nullable Drawable iconDrawable, int iconSizePx, int progressColor) {
+ return generateBitmap(context, percentage, textInside, textInsideSizePx, iconDrawable, iconSizePx, "Usage", 28, progressColor);
+ }
+
+ public static Bitmap generateBitmap(Context context, int percentage, String textInside, int textInsideSizePx, @Nullable Drawable iconDrawable, int iconSizePx, @Nullable String textBottom, int textBottomSizePx,
+ int progressColor) {
+ int width = 400;
+ int height = 400;
+ int stroke = 40;
+ int padding = 5;
+ int minAngle = 135;
+ int maxAngle = 275;
+
+ Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG | Paint.DITHER_FLAG | Paint.ANTI_ALIAS_FLAG);
+ paint.setStrokeWidth(stroke);
+ paint.setStyle(Paint.Style.STROKE);
+ paint.setStrokeCap(Paint.Cap.ROUND);
+
+ Paint mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ mTextPaint.setTextSize(ViewHelper.dp2px(context, textInsideSizePx));
+ mTextPaint.setColor(Color.WHITE);
+ mTextPaint.setTextAlign(Paint.Align.CENTER);
+
+ final RectF arc = new RectF();
+ arc.set(((float) stroke / 2) + padding, ((float) stroke / 2) + padding, width - padding - ((float) stroke / 2), height - padding - ((float) stroke / 2));
+
+ Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(bitmap);
+
+ paint.setColor(Color.argb(75, 255, 255, 255));
+ canvas.drawArc(arc, minAngle, maxAngle, false, paint);
+
+ paint.setColor(progressColor);
+ canvas.drawArc(arc, minAngle, ((float) maxAngle / 100) * percentage, false, paint);
+
+ mTextPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
+ canvas.drawText(textInside, (float) bitmap.getWidth() / 2, (bitmap.getHeight() - mTextPaint.ascent() * 0.7f) / 2, mTextPaint);
+
+ if (iconDrawable != null) {
+ int size = ViewHelper.dp2px(context, iconSizePx);
+ int left = (bitmap.getWidth() - size) / 2;
+ int top = bitmap.getHeight() - (int) (size / 1.3) - (stroke + padding);
+ int right = left + size;
+ int bottom = top + size;
+
+ iconDrawable.setBounds(left, top, right, bottom);
+ iconDrawable.setColorFilter(new BlendModeColorFilter(Color.WHITE, BlendMode.SRC_IN));
+ iconDrawable.draw(canvas);
+ } else if (textBottom != null) {
+ mTextPaint.setTextSize(ViewHelper.dp2px(context, textBottomSizePx));
+ canvas.drawText(textBottom, (float) bitmap.getWidth() / 2, bitmap.getHeight() - (stroke + padding), mTextPaint);
+ }
+
+ return bitmap;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/BootLoopProtector.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/BootLoopProtector.java
new file mode 100644
index 000000000..e2b91da19
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/BootLoopProtector.java
@@ -0,0 +1,51 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+/*
+ * From Siavash79/PixelXpert
+ * https://github.com/siavash79/PixelXpert
+ */
+
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.annotation.SuppressLint;
+
+import java.util.Calendar;
+
+public class BootLoopProtector {
+ public static final String LOAD_TIME_KEY_KEY = "packageLastLoad_";
+ public static final String PACKAGE_STRIKE_KEY_KEY = "packageStrike_";
+ private static final int COUNTER_RESET_PERIOD = 20; //seconds
+
+ @SuppressLint("ApplySharedPref")
+ public static boolean isBootLooped(String packageName) {
+ String loadTimeKey = String.format("%s%s", LOAD_TIME_KEY_KEY, packageName);
+ String strikeKey = String.format("%s%s", PACKAGE_STRIKE_KEY_KEY, packageName);
+ long currentTime = Calendar.getInstance().getTime().getTime();
+ long lastLoadTime = Xprefs.getLong(loadTimeKey, 0);
+ int strikeCount = Xprefs.getInt(strikeKey, 0);
+
+ if (currentTime - lastLoadTime > COUNTER_RESET_PERIOD * 1000) {
+ resetCounter(packageName);
+ } else if (strikeCount >= 3) {
+ return true;
+ } else {
+ Xprefs.edit().putInt(strikeKey, ++strikeCount).commit();
+ }
+ return false;
+ }
+
+ @SuppressLint("ApplySharedPref")
+ public static void resetCounter(String packageName) {
+ try {
+ String loadTimeKey = String.format("%s%s", LOAD_TIME_KEY_KEY, packageName);
+ String strikeKey = String.format("%s%s", PACKAGE_STRIKE_KEY_KEY, packageName);
+ long currentTime = Calendar.getInstance().getTime().getTime();
+
+ Xprefs.edit()
+ .putLong(loadTimeKey, currentTime)
+ .putInt(strikeKey, 0)
+ .commit();
+ } catch (Throwable ignored) {
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/CircleFramedDrawable.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/CircleFramedDrawable.java
new file mode 100644
index 000000000..ce371091c
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/CircleFramedDrawable.java
@@ -0,0 +1,124 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.ColorFilter;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.PixelFormat;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.drawable.Drawable;
+
+/**
+ * Converts the user avatar icon to a circularly clipped one.
+ * TODO: Move this to an internal framework class and share with the one in Keyguard.
+ */
+public class CircleFramedDrawable extends Drawable {
+
+ private final Bitmap mBitmap;
+ private final int mSize;
+ private Paint mIconPaint;
+
+ private float mScale;
+ private Rect mSrcRect;
+ private RectF mDstRect;
+
+ public static CircleFramedDrawable getInstance(Context context, Bitmap icon) {
+ Resources res = context.getResources();
+ int iconSize = dp2px(context, 190);
+
+ CircleFramedDrawable instance = new CircleFramedDrawable(icon, iconSize);
+ return instance;
+ }
+
+ public CircleFramedDrawable(Bitmap icon, int size) {
+ super();
+ mSize = size;
+
+ mBitmap = Bitmap.createBitmap(mSize, mSize, Bitmap.Config.ARGB_8888);
+ final Canvas canvas = new Canvas(mBitmap);
+
+ final int width = icon.getWidth();
+ final int height = icon.getHeight();
+ final int square = Math.min(width, height);
+
+ final Rect cropRect = new Rect((width - square) / 2, (height - square) / 2, square, square);
+ final RectF circleRect = new RectF(0f, 0f, mSize, mSize);
+
+ final Path fillPath = new Path();
+ fillPath.addArc(circleRect, 0f, 360f);
+
+ canvas.drawColor(0, PorterDuff.Mode.CLEAR);
+
+ // opaque circle matte
+ Paint paint = new Paint();
+ paint.setAntiAlias(true);
+ paint.setColor(Color.BLACK);
+ paint.setStyle(Paint.Style.FILL);
+ canvas.drawPath(fillPath, paint);
+
+ // mask in the icon where the bitmap is opaque
+ paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
+ canvas.drawBitmap(icon, cropRect, circleRect, paint);
+
+ // prepare paint for frame drawing
+ paint.setXfermode(null);
+
+ mScale = 1f;
+
+ mSrcRect = new Rect(0, 0, mSize, mSize);
+ mDstRect = new RectF(0, 0, mSize, mSize);
+ }
+
+ @Override
+ public void draw(Canvas canvas) {
+ final float inside = mScale * mSize;
+ final float pad = (mSize - inside) / 2f;
+
+ mDstRect.set(pad, pad, mSize - pad, mSize - pad);
+ canvas.drawBitmap(mBitmap, mSrcRect, mDstRect, mIconPaint);
+ }
+
+ public void setScale(float scale) {
+ mScale = scale;
+ }
+
+ public float getScale() {
+ return mScale;
+ }
+
+ @Override
+ public int getOpacity() {
+ return PixelFormat.TRANSLUCENT;
+ }
+
+ @Override
+ public void setAlpha(int alpha) {
+ }
+
+ @Override
+ public void setColorFilter(ColorFilter cf) {
+ if (mIconPaint == null) {
+ mIconPaint = new Paint();
+ }
+ mIconPaint.setColorFilter(cf);
+ }
+
+ @Override
+ public int getIntrinsicWidth() {
+ return mSize;
+ }
+
+ @Override
+ public int getIntrinsicHeight() {
+ return mSize;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/DrawableConverter.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/DrawableConverter.java
new file mode 100644
index 000000000..ad86228bf
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/DrawableConverter.java
@@ -0,0 +1,299 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Bitmap.Config;
+import android.graphics.Canvas;
+import android.graphics.ColorMatrix;
+import android.graphics.ColorMatrixColorFilter;
+import android.graphics.Paint;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
+import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.renderscript.Allocation;
+import android.renderscript.Element;
+import android.renderscript.RenderScript;
+import android.renderscript.ScriptIntrinsicBlur;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+import androidx.core.graphics.ColorUtils;
+
+public class DrawableConverter {
+
+ private DrawableConverter() {}
+
+ /** Converts the provided drawable to a bitmap using the drawable's intrinsic width and height. */
+ @Nullable
+ public static Bitmap drawableToBitmap(@Nullable Drawable drawable) {
+ return drawableToBitmap(drawable, 0, 0);
+ }
+
+ public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
+ return getRoundedCornerBitmap(bitmap, 24f);
+ }
+
+ public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) {
+ if (bitmap == null) {
+ return null;
+ }
+ Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(),
+ Config.ARGB_8888);
+ Canvas canvas = new Canvas(output);
+
+ final int color = 0xff424242;
+ final Paint paint = new Paint();
+ final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
+ final RectF rectF = new RectF(rect);
+ paint.setAntiAlias(true);
+ canvas.drawARGB(0, 0, 0, 0);
+ paint.setColor(color);
+ canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
+ paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
+ canvas.drawBitmap(bitmap, rect, rect, paint);
+ return output;
+ }
+
+ /**
+ * Converts the provided drawable to a bitmap with the specified width and height.
+ *
+ * If both width and height are 0, the drawable's intrinsic width and height are used (but in
+ * that case {@link #drawableToBitmap(Drawable)} should be used).
+ */
+ @Nullable
+ public static Bitmap drawableToBitmap(@Nullable Drawable drawable, int width, int height) {
+ if (drawable == null) {
+ return null;
+ }
+
+ Bitmap bitmap;
+ if (drawable instanceof BitmapDrawable) {
+ bitmap = ((BitmapDrawable) drawable).getBitmap();
+ } else {
+ if (width > 0 || height > 0) {
+ bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
+ } else if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
+ // Needed for drawables that are just a colour.
+ bitmap = Bitmap.createBitmap(1, 1, Config.ARGB_8888);
+ } else {
+ bitmap =
+ Bitmap.createBitmap(
+ drawable.getIntrinsicWidth(),
+ drawable.getIntrinsicHeight(),
+ Config.ARGB_8888);
+ }
+
+ Log.i("DrawableConverter.drawableToBitmap",
+ String.format("created bitmap with width: %d, height: %d", bitmap.getWidth(), bitmap.getHeight()));
+
+ Canvas canvas = new Canvas(bitmap);
+ drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+ drawable.draw(canvas);
+ }
+ return bitmap;
+ }
+
+ public static Bitmap getColoredBitmap(Drawable d, int color) {
+ if (d == null) {
+ return null;
+ }
+ Bitmap colorBitmap = ((BitmapDrawable) d).getBitmap();
+ Bitmap grayscaleBitmap = toGrayscale(colorBitmap);
+ Paint pp = new Paint();
+ pp.setAntiAlias(true);
+ PorterDuffColorFilter frontFilter =
+ new PorterDuffColorFilter(color, PorterDuff.Mode.MULTIPLY);
+ pp.setColorFilter(frontFilter);
+ Canvas cc = new Canvas(grayscaleBitmap);
+ final Rect rect = new Rect(0, 0, grayscaleBitmap.getWidth(), grayscaleBitmap.getHeight());
+ cc.drawBitmap(grayscaleBitmap, rect, rect, pp);
+ return grayscaleBitmap;
+ }
+
+ public static Bitmap toGrayscale(Bitmap bmpOriginal) {
+ int width, height;
+ height = bmpOriginal.getHeight();
+ width = bmpOriginal.getWidth();
+ try {
+ bmpOriginal = RGB565toARGB888(bmpOriginal);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ Canvas c = new Canvas(bmpGrayscale);
+ Paint paint = new Paint();
+ paint.setAntiAlias(true);
+ ColorMatrix cm = new ColorMatrix();
+ final Rect rect = new Rect(0, 0, width, height);
+ cm.setSaturation(0);
+
+ ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
+ paint.setColorFilter(f);
+ c.drawBitmap(bmpOriginal, rect, rect, paint);
+ return bmpGrayscale;
+ }
+
+ private static Bitmap RGB565toARGB888(Bitmap img) throws Exception {
+ int numPixels = img.getWidth() * img.getHeight();
+ int[] pixels = new int[numPixels];
+
+ //Get JPEG pixels. Each int is the color values for one pixel.
+ img.getPixels(pixels, 0, img.getWidth(), 0, 0, img.getWidth(), img.getHeight());
+
+ //Create a Bitmap of the appropriate format.
+ Bitmap result = Bitmap.createBitmap(img.getWidth(), img.getHeight(), Bitmap.Config.ARGB_8888);
+
+ //Set RGB pixels.
+ result.setPixels(pixels, 0, result.getWidth(), 0, 0, result.getWidth(), result.getHeight());
+ return result;
+ }
+
+ public static Bitmap getGrayscaleBlurredImage(Context context, Bitmap image) {
+ return getGrayscaleBlurredImage(context, image, 3.5f);
+ }
+
+ public static Bitmap getGrayscaleBlurredImage(Context context, Bitmap image, float radius) {
+ Bitmap finalImage = Bitmap.createBitmap(
+ image.getWidth(), image.getHeight(),
+ Bitmap.Config.ARGB_8888);
+ finalImage = toGrayscale(getBlurredImage(context, image, radius));
+ return finalImage;
+ }
+
+ public static Bitmap getBlurredImage(Context context, Bitmap image) {
+ return getBlurredImage(context, image, 3.5f);
+ }
+
+ public static Bitmap getBlurredImage(Context context, Bitmap image, float radius) {
+ try {
+ image = RGB565toARGB888(image);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Bitmap bitmap = Bitmap.createBitmap(
+ image.getWidth(), image.getHeight(),
+ Bitmap.Config.ARGB_8888);
+ RenderScript renderScript = RenderScript.create(context);
+ Allocation blurInput = Allocation.createFromBitmap(renderScript, image);
+ Allocation blurOutput = Allocation.createFromBitmap(renderScript, bitmap);
+
+ ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(renderScript,
+ Element.U8_4(renderScript));
+ blur.setInput(blurInput);
+ blur.setRadius(radius); // radius must be 0 < r <= 25
+ blur.forEach(blurOutput);
+ blurOutput.copyTo(bitmap);
+ renderScript.destroy();
+
+ return bitmap;
+ }
+
+ /**
+ * Finds a suitable color such that there's enough contrast.
+ *
+ * @param color the color to start searching from.
+ * @param other the color to ensure contrast against. Assumed to be darker than {@code color}
+ * @param findFg if true, we assume {@code color} is a foreground, otherwise a background.
+ * @param minRatio the minimum contrast ratio required.
+ * @return a color with the same hue as {@code color}, potentially lightened to meet the
+ * contrast ratio.
+ */
+ public static int findContrastColorAgainstDark(int color, int other, boolean findFg,
+ double minRatio) {
+ int fg = findFg ? color : other;
+ int bg = findFg ? other : color;
+ if (ColorUtils.calculateContrast(fg, bg) >= minRatio) {
+ return color;
+ }
+
+ float[] hsl = new float[3];
+ ColorUtils.colorToHSL(findFg ? fg : bg, hsl);
+
+ float low = hsl[2], high = 1;
+ for (int i = 0; i < 15 && high - low > 0.00001; i++) {
+ final float l = (low + high) / 2;
+ hsl[2] = l;
+ if (findFg) {
+ fg = ColorUtils.HSLToColor(hsl);
+ } else {
+ bg = ColorUtils.HSLToColor(hsl);
+ }
+ if (ColorUtils.calculateContrast(fg, bg) > minRatio) {
+ high = l;
+ } else {
+ low = l;
+ }
+ }
+ hsl[2] = high;
+ return ColorUtils.HSLToColor(hsl);
+ }
+
+ /**
+ * Finds a suitable color such that there's enough contrast.
+ *
+ * @param color the color to start searching from.
+ * @param other the color to ensure contrast against. Assumed to be lighter than {@code color}
+ * @param findFg if true, we assume {@code color} is a foreground, otherwise a background.
+ * @param minRatio the minimum contrast ratio required.
+ * @return a color with the same hue as {@code color}, potentially darkened to meet the
+ * contrast ratio.
+ */
+ public static int findContrastColor(int color, int other, boolean findFg, double minRatio) {
+ int fg = findFg ? color : other;
+ int bg = findFg ? other : color;
+ if (ColorUtils.calculateContrast(fg, bg) >= minRatio) {
+ return color;
+ }
+
+ double[] lab = new double[3];
+ ColorUtils.colorToLAB(findFg ? fg : bg, lab);
+
+ double low = 0, high = lab[0];
+ final double a = lab[1], b = lab[2];
+ for (int i = 0; i < 15 && high - low > 0.00001; i++) {
+ final double l = (low + high) / 2;
+ if (findFg) {
+ fg = ColorUtils.LABToColor(l, a, b);
+ } else {
+ bg = ColorUtils.LABToColor(l, a, b);
+ }
+ if (ColorUtils.calculateContrast(fg, bg) > minRatio) {
+ low = l;
+ } else {
+ high = l;
+ }
+ }
+ return ColorUtils.LABToColor(low, a, b);
+ }
+
+ public static BitmapDrawable scaleDrawable(Context context, Drawable drawable, float scale) {
+ // Ottieni le dimensioni originali del Drawable
+ int width = drawable.getIntrinsicWidth();
+ int height = drawable.getIntrinsicHeight();
+
+ // Calcola le nuove dimensioni scalate
+ int newWidth = (int) (width * scale);
+ int newHeight = (int) (height * scale);
+
+ // Crea una Bitmap vuota con le nuove dimensioni
+ Bitmap scaledBitmap = Bitmap.createBitmap(newWidth, newHeight, Bitmap.Config.ARGB_8888);
+
+ // Crea un Canvas per disegnare la Bitmap scalata
+ Canvas canvas = new Canvas(scaledBitmap);
+
+ // Disegna il Drawable scalato sulla Bitmap
+ drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+ drawable.draw(canvas);
+
+ // Ritorna il Drawable scalato come BitmapDrawable
+ return new BitmapDrawable(context.getResources(), scaledBitmap);
+ }
+
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ExtendedRemotePreferences.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ExtendedRemotePreferences.java
new file mode 100644
index 000000000..98e1dda30
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ExtendedRemotePreferences.java
@@ -0,0 +1,31 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import android.content.Context;
+
+import com.crossbowffs.remotepreferences.RemotePreferences;
+
+import java.util.List;
+
+import it.dhd.oxygencustomizer.customprefs.SliderPreference;
+
+public class ExtendedRemotePreferences extends RemotePreferences {
+ public ExtendedRemotePreferences(Context context, String authority, String prefFileName) {
+ super(context, authority, prefFileName);
+ }
+
+ public ExtendedRemotePreferences(Context context, String authority, String prefFileName, boolean strictMode) {
+ super(context, authority, prefFileName, strictMode);
+ }
+
+ public int getSliderInt(String key, int defaultVal) {
+ return SliderPreference.getSingleIntValue(this, key, defaultVal);
+ }
+
+ public float getSliderFloat(String key, float defaultVal) {
+ return SliderPreference.getSingleFloatValue(this, key, defaultVal);
+ }
+
+ public List getSliderValues(String key, float defaultValue) {
+ return SliderPreference.getValues(this, key, defaultValue);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ExtendedSharedPreferences.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ExtendedSharedPreferences.java
new file mode 100644
index 000000000..68508df95
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ExtendedSharedPreferences.java
@@ -0,0 +1,101 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+
+import android.content.SharedPreferences;
+
+import androidx.annotation.Nullable;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import it.dhd.oxygencustomizer.customprefs.SliderPreference;
+
+public class ExtendedSharedPreferences implements SharedPreferences {
+ private final SharedPreferences prefs;
+
+ public static ExtendedSharedPreferences from(SharedPreferences prefs) {
+ return new ExtendedSharedPreferences(prefs);
+ }
+
+ private ExtendedSharedPreferences(SharedPreferences prefs) {
+ this.prefs = prefs;
+ }
+
+ public int getSliderInt(String key, int defaultVal) {
+ return SliderPreference.getSingleIntValue(this, key, defaultVal);
+ }
+
+ public List getSliderValues(String key, float defaultValue) {
+ return SliderPreference.getValues(this, key, defaultValue);
+ }
+
+ public float getSliderFloat(String key, float defaultVal) {
+ return SliderPreference.getSingleFloatValue(this, key, defaultVal);
+ }
+
+ @Override
+ public Map getAll() {
+ return prefs.getAll();
+ }
+
+ @Nullable
+ @Override
+ public String getString(String key, @Nullable String defValue) {
+ return prefs.getString(key, defValue);
+ }
+
+ @Nullable
+ @Override
+ public Set getStringSet(String key, @Nullable Set defValues) {
+ return prefs.getStringSet(key, defValues);
+ }
+
+ @Override
+ public int getInt(String key, int defValue) {
+ return prefs.getInt(key, defValue);
+ }
+
+ @Override
+ public long getLong(String key, long defValue) {
+ return prefs.getLong(key, defValue);
+ }
+
+ @Override
+ public float getFloat(String key, float defValue) {
+ return prefs.getFloat(key, defValue);
+ }
+
+ @Override
+ public boolean getBoolean(String key, boolean defValue) {
+ return prefs.getBoolean(key, defValue);
+ }
+
+ @Override
+ public boolean contains(String key) {
+ return prefs.contains(key);
+ }
+
+ @Override
+ public Editor edit() {
+ return prefs.edit();
+ }
+
+ public void putInt(String key, int value) {
+ edit().putInt(key, value).apply();
+ }
+
+ @Override
+ public void registerOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener) {
+ prefs.registerOnSharedPreferenceChangeListener(listener);
+ }
+
+ @Override
+ public void unregisterOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener) {
+ prefs.unregisterOnSharedPreferenceChangeListener(listener);
+ }
+
+ public void putString(String setting, String value) {
+ edit().putString(setting, value).apply();
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/OmniJawsClient.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/OmniJawsClient.java
new file mode 100644
index 000000000..bd9670310
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/OmniJawsClient.java
@@ -0,0 +1,404 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+/*
+ * Copyright (C) 2021 The OmniROM Project
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+import static it.dhd.oxygencustomizer.xposed.ResourceManager.modRes;
+
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.core.content.res.ResourcesCompat;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.weather.Config;
+
+public class OmniJawsClient {
+ private static final String TAG = "OmniJawsClient";
+ private static final boolean DEBUG = true;
+ public static final String SERVICE_PACKAGE = BuildConfig.APPLICATION_ID;
+ public static final Uri WEATHER_URI
+ = Uri.parse("content://it.dhd.oxygencustomizer.provider/weather");
+ public static final Uri SETTINGS_URI
+ = Uri.parse("content://it.dhd.oxygencustomizer.provider/settings");
+ public static final Uri CONTROL_URI
+ = Uri.parse("content://it.dhd.oxygencustomizer.provider/control");
+
+ private static final String ICON_PACKAGE_DEFAULT = BuildConfig.APPLICATION_ID;
+ private static final String ICON_PREFIX_DEFAULT = "google";
+ private static final String ICON_PREFIX_OUTLINE = "outline";
+ private static final String EXTRA_ERROR = "error";
+ public static final int EXTRA_ERROR_NETWORK = 0;
+ public static final int EXTRA_ERROR_LOCATION = 1;
+ public static final int EXTRA_ERROR_DISABLED = 2;
+
+ public static final String[] WEATHER_PROJECTION = new String[]{
+ "city",
+ "wind_speed",
+ "wind_direction",
+ "condition_code",
+ "temperature",
+ "humidity",
+ "condition",
+ "forecast_low",
+ "forecast_high",
+ "forecast_condition",
+ "forecast_condition_code",
+ "time_stamp",
+ "forecast_date",
+ "pin_wheel"
+ };
+
+ public static final String[] SETTINGS_PROJECTION = new String[] {
+ "enabled",
+ "units",
+ "provider",
+ "setup",
+ "icon_pack"
+ };
+
+ private static final String WEATHER_UPDATE = SERVICE_PACKAGE + ".WEATHER_UPDATE";
+ private static final String WEATHER_ERROR = SERVICE_PACKAGE + ".WEATHER_ERROR";
+
+ private static final DecimalFormat sNoDigitsFormat = new DecimalFormat("0");
+
+ public static class WeatherInfo {
+ public String city;
+ public String windSpeed;
+ public String windDirection;
+ public int conditionCode;
+ public String temp;
+ public String humidity;
+ public String condition;
+ public Long timeStamp;
+ public List forecasts;
+ public String tempUnits;
+ public String windUnits;
+ public String provider;
+ public String pinWheel;
+ public String iconPack;
+
+ public String toString() {
+ return city + ":" + new Date(timeStamp) + ": " + windSpeed + ":" + windDirection + ":" +conditionCode + ":" + temp + ":" + humidity + ":" + condition + ":" + tempUnits + ":" + windUnits + ": " + forecasts + ": " + iconPack;
+ }
+
+ public String getLastUpdateTime() {
+ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+ return sdf.format(new Date(timeStamp));
+ }
+ }
+
+ public static class DayForecast {
+ public String low;
+ public String high;
+ public int conditionCode;
+ public String condition;
+ public String date;
+
+ public String toString() {
+ return "[" + low + ":" + high + ":" +conditionCode + ":" + condition + ":" + date + "]";
+ }
+ }
+
+ public static interface OmniJawsObserver {
+ public void weatherUpdated();
+ public void weatherError(int errorReason);
+ default public void updateSettings() {};
+ }
+
+ private class WeatherUpdateReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(final Context context, Intent intent) {
+ String action = intent.getAction();
+ for (OmniJawsObserver observer : mObserver) {
+ if (action.equals(WEATHER_UPDATE)) {
+ observer.weatherUpdated();
+ }
+ if (action.equals(WEATHER_ERROR)) {
+ int errorReason = intent.getIntExtra(EXTRA_ERROR, 0);
+ observer.weatherError(errorReason);
+ }
+ }
+ }
+ }
+
+ private Context mContext;
+ private WeatherInfo mCachedInfo;
+ private Resources mRes;
+ private String mPackageName;
+ private String mIconPrefix;
+ private String mSettingIconPackage;
+ private boolean mMetric;
+ private List mObserver;
+ private WeatherUpdateReceiver mReceiver;
+ private boolean mXposed = false;
+
+ public OmniJawsClient(Context context, boolean xposed) {
+ mContext = context;
+ mXposed = xposed;
+ mObserver = new ArrayList<>();
+ }
+
+ public WeatherInfo getWeatherInfo() {
+ return mCachedInfo;
+ }
+
+ private static String getFormattedValue(float value) {
+ if (Float.isNaN(value)) {
+ return "-";
+ }
+ String formatted = sNoDigitsFormat.format(value);
+ if (formatted.equals("-0")) {
+ formatted = "0";
+ }
+ return formatted;
+ }
+
+ public void queryWeather() {
+ if (!isOmniJawsEnabled()) {
+ Log.w(TAG, "queryWeather while disabled");
+ mCachedInfo = null;
+ return;
+ }
+ try {
+ mCachedInfo = null;
+ Cursor c = mContext.getContentResolver().query(WEATHER_URI, WEATHER_PROJECTION,
+ null, null, null);
+ if (c != null) {
+ try {
+ int count = c.getCount();
+ if (count > 0) {
+ mCachedInfo = new WeatherInfo();
+ List forecastList = new ArrayList();
+ int i = 0;
+ for (i = 0; i < count; i++) {
+ c.moveToPosition(i);
+ if (i == 0) {
+ mCachedInfo.city = c.getString(0);
+ mCachedInfo.windSpeed = getFormattedValue(c.getFloat(1));
+ mCachedInfo.windDirection = String.valueOf(c.getInt(2)) + "\u00b0";
+ mCachedInfo.conditionCode = c.getInt(3);
+ mCachedInfo.temp = getFormattedValue(c.getFloat(4));
+ mCachedInfo.humidity = c.getString(5);
+ mCachedInfo.condition = c.getString(6);
+ mCachedInfo.timeStamp = Long.valueOf(c.getString(11));
+ mCachedInfo.pinWheel = c.getString(13);
+ } else {
+ DayForecast day = new DayForecast();
+ day.low = getFormattedValue(c.getFloat(7));
+ day.high = getFormattedValue(c.getFloat(8));
+ day.condition = c.getString(9);
+ day.conditionCode = c.getInt(10);
+ day.date = c.getString(12);
+ forecastList.add(day);
+ }
+ }
+ mCachedInfo.forecasts = forecastList;
+ }
+ } finally {
+ c.close();
+ }
+ }
+ c = mContext.getContentResolver().query(SETTINGS_URI, SETTINGS_PROJECTION,
+ null, null, null);
+ if (c != null) {
+ try {
+ int count = c.getCount();
+ if (count == 1) {
+ c.moveToPosition(0);
+ mMetric = c.getInt(1) == 0;
+ if (mCachedInfo != null) {
+ mCachedInfo.tempUnits = getTemperatureUnit();
+ mCachedInfo.windUnits = getWindUnit();
+ mCachedInfo.provider = c.getString(2);
+ mCachedInfo.iconPack = c.getString(4);
+ }
+ }
+ } finally {
+ c.close();
+ }
+ }
+
+ if (DEBUG) Log.d(TAG, "queryWeather " + mCachedInfo);
+ updateSettings();
+ } catch (Exception e) {
+ Log.e(TAG, "queryWeather", e);
+ }
+ }
+
+ private void loadDefaultIconsPackage() {
+ mPackageName = ICON_PACKAGE_DEFAULT;
+ mIconPrefix = ICON_PREFIX_DEFAULT;
+ mSettingIconPackage = mPackageName + "." + mIconPrefix;
+ if (DEBUG) Log.d(TAG, "Load default icon pack " + mSettingIconPackage + " " + mPackageName + " " + mIconPrefix);
+ try {
+ if (!mXposed) {
+ PackageManager packageManager = mContext.getPackageManager();
+ mRes = packageManager.getResourcesForApplication(mPackageName);
+ } else {
+ mRes = modRes;
+ }
+ } catch (Exception e) {
+ mRes = null;
+ }
+ if (mRes == null) {
+ Log.w(TAG, "No default package found");
+ }
+ }
+
+ private Drawable getDefaultConditionImage() {
+ String packageName = ICON_PACKAGE_DEFAULT;
+ String iconPrefix = ICON_PREFIX_DEFAULT;
+
+ try {
+ PackageManager packageManager = mContext.getPackageManager();
+ Resources res = packageManager.getResourcesForApplication(packageName);
+ if (res != null) {
+ int resId = res.getIdentifier(iconPrefix + "_na", "drawable", packageName);
+ Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme());
+ if (d != null) {
+ return d;
+ }
+ } else {
+ int resId = modRes.getIdentifier(iconPrefix + "_na", "drawable", packageName);
+ Drawable d = ResourcesCompat.getDrawable(modRes, resId, mContext.getTheme());
+ if (d != null) {
+ return d;
+ }
+ }
+ } catch (Exception ignored) {
+ }
+ // absolute absolute fallback
+ Log.w(TAG, "No default package found");
+ return new ColorDrawable(Color.RED);
+ }
+
+ private void loadCustomIconPackage() {
+ if (DEBUG) Log.d(TAG, "Load custom icon pack " + mSettingIconPackage);
+ int idx = mSettingIconPackage.lastIndexOf(".");
+ mPackageName = mSettingIconPackage.substring(0, idx);
+ mIconPrefix = mSettingIconPackage.substring(idx + 1);
+ if (DEBUG) Log.d(TAG, "Load custom icon pack " + mPackageName + " " + mIconPrefix);
+ try {
+ if (!mXposed) {
+ PackageManager packageManager = mContext.getPackageManager();
+ mRes = packageManager.getResourcesForApplication(mPackageName);
+ } else {
+ mRes = modRes;
+ }
+
+ } catch (Exception e) {
+ mRes = null;
+ }
+ if (mRes == null) {
+ Log.w(TAG, "Icon pack loading failed - loading default");
+ loadDefaultIconsPackage();
+ }
+ }
+
+ public Drawable getWeatherConditionImage(int conditionCode) {
+ try {
+ int resId = mRes.getIdentifier(mIconPrefix + "_" + conditionCode, "drawable", mPackageName);
+ Drawable d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme());
+ if (d != null) {
+ return d;
+ }
+ Log.w(TAG, "Failed to get condition image for " + conditionCode + " use default");
+ resId = mRes.getIdentifier(mIconPrefix + "_na", "drawable", mPackageName);
+ d = ResourcesCompat.getDrawable(mRes, resId, mContext.getTheme());
+ if (d != null) {
+ return d;
+ }
+ } catch(Exception e) {
+ Log.e(TAG, "getWeatherConditionImage", e);
+ }
+ Log.w(TAG, "Failed to get condition image for " + conditionCode);
+ return getDefaultConditionImage();
+ }
+
+ public boolean isOmniJawsEnabled() {
+ return Config.isEnabled(mContext);
+ }
+
+ private String getTemperatureUnit() {
+ return "\u00b0" + (mMetric ? "C" : "F");
+ }
+
+ private String getWindUnit() {
+ return mMetric ? "km/h":"mph";
+ }
+
+ private void updateSettings() {
+ final String iconPack = mCachedInfo != null ? mCachedInfo.iconPack : null;
+ if (TextUtils.isEmpty(iconPack)) {
+ loadDefaultIconsPackage();
+ } else if (mSettingIconPackage == null || !iconPack.equals(mSettingIconPackage)) {
+ mSettingIconPackage = iconPack;
+ loadCustomIconPackage();
+ }
+ }
+
+ public void addObserver(OmniJawsObserver observer) {
+ if (mObserver.isEmpty()) {
+ if (mReceiver != null) {
+ try {
+ mContext.unregisterReceiver(mReceiver);
+ } catch (Exception ignored) {
+ }
+ }
+ mReceiver = new WeatherUpdateReceiver();
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(WEATHER_UPDATE);
+ filter.addAction(WEATHER_ERROR);
+ if (DEBUG) Log.d(TAG, "registerReceiver");
+ mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED);
+ }
+ mObserver.add(observer);
+ }
+
+ public void removeObserver(OmniJawsObserver observer) {
+ mObserver.remove(observer);
+ if (mObserver.isEmpty() && mReceiver != null) {
+ try {
+ if (DEBUG) Log.d(TAG, "unregisterReceiver");
+ mContext.unregisterReceiver(mReceiver);
+ } catch (Exception ignored) {
+ }
+ mReceiver = null;
+ }
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/RemotePrefProvider.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/RemotePrefProvider.java
new file mode 100644
index 000000000..554ba8e3c
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/RemotePrefProvider.java
@@ -0,0 +1,12 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import com.crossbowffs.remotepreferences.RemotePreferenceFile;
+import com.crossbowffs.remotepreferences.RemotePreferenceProvider;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+
+public class RemotePrefProvider extends RemotePreferenceProvider {
+ public RemotePrefProvider() {
+ super(BuildConfig.APPLICATION_ID, new RemotePreferenceFile[]{new RemotePreferenceFile(BuildConfig.APPLICATION_ID + "_preferences", true)});
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ShellUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ShellUtils.java
new file mode 100644
index 000000000..69f5badc8
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ShellUtils.java
@@ -0,0 +1,162 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Arrays;
+import java.util.List;
+
+public class ShellUtils {
+
+ public static final String COMMAND_SU = "su";
+ public static final String COMMAND_SH = "sh";
+ public static final String COMMAND_EXIT = "exit\n";
+ public static final String COMMAND_LINE_END = "\n";
+
+ private ShellUtils() {
+ throw new AssertionError();
+ }
+
+ public static boolean checkRootPermission() {
+ return execCommand("echo root", true, false).result == 0;
+ }
+
+ public static CommandResult execCommand(String command, boolean isRoot) {
+ return execCommand(new String[]{command}, isRoot, true);
+ }
+
+ public static CommandResult execCommand(List commands, boolean isRoot) {
+ return execCommand(commands == null ? null : commands.toArray(new String[]{}), isRoot, true);
+ }
+
+ public static CommandResult execCommand(String[] commands, boolean isRoot) {
+ return execCommand(commands, isRoot, true);
+ }
+
+ /**
+ * Run a shell command
+ *
+ * @param command command
+ * @param isRoot whether need to run with root
+ * @param isNeedResultMsg whether need result msg
+ * @see ShellUtils#execCommand(String[], boolean, boolean)
+ */
+ public static CommandResult execCommand(String command, boolean isRoot, boolean isNeedResultMsg) {
+ return execCommand(new String[]{command}, isRoot, isNeedResultMsg);
+ }
+
+ /**
+ * Run a shell command
+ *
+ * @param commands command list
+ * @param isRoot whether need to run with root
+ * @param isNeedResultMsg whether need result msg
+ * @see ShellUtils#execCommand(String[], boolean, boolean)
+ */
+ public static CommandResult execCommand(List commands, boolean isRoot, boolean isNeedResultMsg) {
+ return execCommand(commands == null ? null : commands.toArray(new String[]{}), isRoot, isNeedResultMsg);
+ }
+
+ /**
+ * Run a shell command
+ *
+ * @param commands command array
+ * @param isRoot whether need to run with root
+ * @param isNeedResultMsg whether need result msg
+ * @return
+ * if isNeedResultMsg is false, {@link CommandResult#successMsg} is null and
+ * {@link CommandResult#errorMsg} is null.
+ * if {@link CommandResult#result} is -1, there maybe some excepiton.
+ *
+ */
+ public static CommandResult execCommand(String[] commands, boolean isRoot, boolean isNeedResultMsg) {
+ int result = -1;
+ if (commands == null || commands.length == 0) {
+ return new CommandResult(commands, result, null, null);
+ }
+
+ Process process = null;
+ BufferedReader successResult = null;
+ BufferedReader errorResult = null;
+ StringBuilder successMsg = null;
+ StringBuilder errorMsg = null;
+
+ DataOutputStream os = null;
+ try {
+ process = Runtime.getRuntime().exec(isRoot ? COMMAND_SU : COMMAND_SH);
+ os = new DataOutputStream(process.getOutputStream());
+ for (String command : commands) {
+ if (command == null) {
+ continue;
+ }
+
+ os.write(command.getBytes());
+ os.writeBytes(COMMAND_LINE_END);
+ os.flush();
+ }
+ os.writeBytes(COMMAND_EXIT);
+ os.flush();
+
+ result = process.waitFor();
+ // get command result
+ if (isNeedResultMsg) {
+ successMsg = new StringBuilder();
+ errorMsg = new StringBuilder();
+ successResult = new BufferedReader(new InputStreamReader(process.getInputStream()));
+ errorResult = new BufferedReader(new InputStreamReader(process.getErrorStream()));
+ String s;
+ while ((s = successResult.readLine()) != null) {
+ successMsg.append(s);
+ }
+ while ((s = errorResult.readLine()) != null) {
+ errorMsg.append(s);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (os != null) {
+ os.close();
+ }
+ if (successResult != null) {
+ successResult.close();
+ }
+ if (errorResult != null) {
+ errorResult.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ if (process != null) {
+ process.destroy();
+ }
+ }
+ return new CommandResult(commands, result, successMsg == null ? null : successMsg.toString(), errorMsg == null ? null
+ : errorMsg.toString());
+ }
+
+ public static class CommandResult {
+
+ public int result;
+ public String successMsg;
+ public String errorMsg;
+
+ public String logMsg;
+ public String allMsg;
+
+ public CommandResult(int result) {
+ this.result = result;
+ }
+
+ public CommandResult(String[] commands, int result, String successMsg, String errorMsg) {
+ this.result = result;
+ this.successMsg = successMsg;
+ this.errorMsg = errorMsg;
+ this.logMsg = "\n\nresult: " + result + "\nsuccessMsg: " + successMsg + "\nerrorMsg: " + errorMsg + "\n\n";
+ this.allMsg = "\n\ncommand: \n" + Arrays.toString(commands) + "\nresult: " + result + "\nsuccessMsg: " + successMsg + "\nerrorMsg: " + errorMsg + "\n\n";
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/SystemUtils.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/SystemUtils.java
new file mode 100644
index 000000000..0387ad697
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/SystemUtils.java
@@ -0,0 +1,391 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import static android.content.res.Configuration.UI_MODE_NIGHT_YES;
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static de.robv.android.xposed.XposedHelpers.getStaticObjectField;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.annotation.SuppressLint;
+import android.app.AlarmManager;
+import android.app.DownloadManager;
+import android.app.usage.NetworkStatsManager;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.hardware.camera2.CameraAccessException;
+import android.hardware.camera2.CameraCharacteristics;
+import android.hardware.camera2.CameraManager;
+import android.hardware.camera2.CameraMetadata;
+import android.media.AudioManager;
+import android.net.ConnectivityManager;
+import android.net.wifi.WifiManager;
+import android.os.BatteryManager;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.PowerManager;
+import android.os.SystemClock;
+import android.os.UserManager;
+import android.os.VibrationAttributes;
+import android.os.VibrationEffect;
+import android.os.VibratorManager;
+import android.telephony.TelephonyManager;
+import android.view.WindowManager;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import org.jetbrains.annotations.Contract;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+
+public class SystemUtils {
+ private static final int THREAD_PRIORITY_BACKGROUND = 10;
+ public static final String GSA_PACKAGE = "com.google.android.googlequicksearchbox";
+ public static final String LENS_ACTIVITY = "com.google.android.apps.lens.MainActivity";
+ public static final String LENS_URI = "google://lens";
+ public static final String LENS_SHARE_ACTIVITY = "com.google.android.apps.search.lens.LensShareEntryPointActivity";
+
+ @SuppressLint("StaticFieldLeak")
+ static SystemUtils instance;
+ Context mContext;
+ PackageManager mPackageManager;
+ CameraManager mCameraManager;
+ VibratorManager mVibrationManager;
+ AudioManager mAudioManager;
+ BatteryManager mBatteryManager;
+ PowerManager mPowerManager;
+ ConnectivityManager mConnectivityManager;
+ TelephonyManager mTelephonyManager;
+ AlarmManager mAlarmManager;
+ DownloadManager mDownloadManager = null;
+ NetworkStatsManager mNetworkStatsManager = null;
+ boolean mHasVibrator = false;
+ int maxFlashLevel = -1;
+ static boolean isTorchOn = false;
+
+ //ArrayList mFlashlightLevelListeners = new ArrayList<>();
+ //ArrayList mVolumeChangeListeners = new ArrayList<>();
+ private WifiManager mWifiManager;
+ private WindowManager mWindowManager;
+ private UserManager mUserManager;
+
+ public static void killSelf()
+ {
+ BootLoopProtector.resetCounter(android.os.Process.myProcessName());
+
+ android.os.Process.killProcess(android.os.Process.myPid());
+ }
+
+ public static void sleep(int millis)
+ {
+ try {
+ Thread.sleep(millis);
+ } catch (Throwable ignored) {}
+ }
+
+ @Nullable
+ @Contract(pure = true)
+ public static AudioManager AudioManager() {
+ return instance == null
+ ? null
+ : instance.getAudioManager();
+ }
+
+ @Nullable
+ @Contract(pure = true)
+ public static BatteryManager BatteryManager() {
+ return instance == null
+ ? null
+ : instance.getBatteryManager();
+ }
+
+ private CameraManager getCameraManager() {
+ if(mCameraManager == null)
+ {
+ try {
+ HandlerThread thread = new HandlerThread("", THREAD_PRIORITY_BACKGROUND);
+ thread.start();
+ Handler mHandler = new Handler(thread.getLooper());
+ mCameraManager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
+
+ mCameraManager.registerTorchCallback(new CameraManager.TorchCallback() {
+ @Override
+ public void onTorchModeChanged(@NonNull String cameraId, boolean enabled) {
+ super.onTorchModeChanged(cameraId, enabled);
+ isTorchOn = enabled;
+ }
+ }, mHandler);
+ } catch (Throwable t) {
+ mCameraManager = null;
+ if (BuildConfig.DEBUG) {
+ log(t);
+ }
+ }
+ }
+ return mCameraManager;
+ }
+
+ public SystemUtils(Context context) {
+ mContext = context;
+
+ instance = this;
+ }
+
+ public static boolean isGSAEnabled(Context context) {
+ try {
+ return context.getPackageManager().getApplicationInfo(GSA_PACKAGE, 0).enabled;
+ } catch (PackageManager.NameNotFoundException e) {
+ return false;
+ }
+ }
+
+ private PowerManager getPowerManager() {
+ if(mPowerManager == null)
+ {
+ try {
+ mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+ } catch (Throwable t) {
+ if (BuildConfig.DEBUG) {
+ log("OxygenCustomizer Error getting power manager");
+ log(t);
+ }
+ }
+ }
+ return mPowerManager;
+ }
+
+ @Nullable
+ @Contract(pure = true)
+ public static PowerManager PowerManager() {
+ return instance == null
+ ? null
+ : instance.getPowerManager();
+ }
+
+ public static boolean isDarkMode() {
+ return instance != null
+ && instance.getIsDark();
+ }
+
+ private boolean getIsDark() {
+ return (mContext.getResources().getConfiguration().uiMode & UI_MODE_NIGHT_YES) == UI_MODE_NIGHT_YES;
+ }
+
+ public static void sleep() {
+ if (instance != null)
+ {
+ try {
+ callMethod(PowerManager(), "goToSleep", SystemClock.uptimeMillis());
+ } catch (Throwable ignored) {}
+ }
+ }
+
+ static boolean darkSwitching = false;
+
+ public static void doubleToggleDarkMode() {
+ boolean isDark = isDarkMode();
+ new Thread(() -> {
+ try {
+ while (darkSwitching) {
+ Thread.currentThread().wait(100);
+ }
+ darkSwitching = true;
+
+ ShellUtils.execCommand("cmd uimode night " + (isDark ? "no" : "yes"), false);
+ Thread.sleep(1000);
+ ShellUtils.execCommand("cmd uimode night " + (isDark ? "yes" : "no"), false);
+
+ Thread.sleep(500);
+ darkSwitching = false;
+ } catch (Exception ignored) {
+ }
+ }).start();
+ }
+
+ private AudioManager getAudioManager() {
+ if (mAudioManager == null) {
+ try {
+ mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+ } catch (Throwable t) {
+ if (BuildConfig.DEBUG) {
+ log(t);
+ }
+ }
+ }
+ return mAudioManager;
+ }
+
+ private BatteryManager getBatteryManager() {
+ if (mBatteryManager == null) {
+ try {
+ mBatteryManager = (BatteryManager) mContext.getSystemService(Context.BATTERY_SERVICE);
+ } catch (Throwable t) {
+ if (BuildConfig.DEBUG) {
+ log(t);
+ }
+ }
+ }
+ return mBatteryManager;
+ }
+
+ private VibratorManager getVibrationManager()
+ {
+ if(mVibrationManager == null)
+ {
+ try {
+ mVibrationManager = (VibratorManager) mContext.getSystemService(Context.VIBRATOR_MANAGER_SERVICE);
+ mHasVibrator = mVibrationManager.getDefaultVibrator().hasVibrator();
+ } catch (Throwable t) {
+ if (BuildConfig.DEBUG) {
+ log("Oxygen Customizer Error getting vibrator");
+ log(t);
+ }
+ }
+ }
+ return mVibrationManager;
+ }
+
+ private boolean hasVibrator() {
+ return getVibrationManager() != null && mHasVibrator;
+ }
+
+ public static void vibrate(int effect, @Nullable Integer vibrationUsage) {
+ vibrate(VibrationEffect.createPredefined(effect), vibrationUsage);
+ }
+
+ @SuppressLint("MissingPermission")
+ public static void vibrate(VibrationEffect effect, @Nullable Integer vibrationUsage) {
+ if (instance == null || !instance.hasVibrator()) return;
+ try {
+ if(vibrationUsage != null) {
+ instance.getVibrationManager().getDefaultVibrator().vibrate(effect, VibrationAttributes.createForUsage(vibrationUsage));
+ }
+ else
+ {
+ instance.getVibrationManager().getDefaultVibrator().vibrate(effect);
+ }
+ } catch (Exception ignored) {
+ }
+ }
+
+ public static boolean isFlashOn() {
+ return isTorchOn;
+ }
+
+ public static void toggleFlash() {
+ if (instance != null)
+ instance.toggleFlashInternal();
+ }
+
+ public static void shutdownFlash() {
+ if (instance != null)
+ instance.shutdownFlashInternal();
+ }
+
+ private void shutdownFlashInternal() {
+ setFlashInternal(false);
+ }
+
+ private void toggleFlashInternal() {
+ setFlashInternal(!isTorchOn);
+ }
+
+
+ private boolean supportsFlashLevelsInternal() {
+ if(getCameraManager() == null)
+ {
+ return false;
+ }
+
+ try {
+ String flashID = getFlashID(mCameraManager);
+ if (flashID.equals("")) {
+ return false;
+ }
+ if (maxFlashLevel == -1) {
+ @SuppressWarnings("unchecked")
+ CameraCharacteristics.Key FLASH_INFO_STRENGTH_MAXIMUM_LEVEL = (CameraCharacteristics.Key) getStaticObjectField(CameraCharacteristics.class, "FLASH_INFO_STRENGTH_MAXIMUM_LEVEL");
+ maxFlashLevel = mCameraManager.getCameraCharacteristics(flashID).get(FLASH_INFO_STRENGTH_MAXIMUM_LEVEL);
+ }
+ return maxFlashLevel > 1;
+ } catch (Throwable ignored) {
+ return false;
+ }
+ }
+
+ private void setFlashInternal(boolean enabled) {
+ if(getCameraManager() == null)
+ return;
+
+ try {
+ String flashID = getFlashID(mCameraManager);
+ if (flashID.equals("")) {
+ return;
+ }
+ if (enabled
+ && Xprefs.getBoolean("leveledFlashTile", false)
+ && Xprefs.getBoolean("isFlashLevelGlobal", false)
+ && supportsFlashLevelsInternal()) {
+ float currentPct = Xprefs.getFloat("flashPCT", 0.5f);
+ setFlashInternal(true, currentPct);
+ return;
+ }
+
+ mCameraManager.setTorchMode(flashID, enabled);
+ } catch (Throwable t) {
+ if (BuildConfig.DEBUG) {
+ log("Oxygen Customizer Error in setting flashlight");
+ log(t);
+ }
+ }
+ }
+
+ private void setFlashInternal(boolean enabled, float pct) {
+ if(getCameraManager() == null)
+ {
+ return;
+ }
+
+ try {
+ String flashID = getFlashID(mCameraManager);
+ if (flashID.equals("")) {
+ return;
+ }
+ if (maxFlashLevel == -1) {
+ @SuppressWarnings("unchecked")
+ CameraCharacteristics.Key FLASH_INFO_STRENGTH_MAXIMUM_LEVEL = (CameraCharacteristics.Key) getStaticObjectField(CameraCharacteristics.class, "FLASH_INFO_STRENGTH_MAXIMUM_LEVEL");
+ maxFlashLevel = mCameraManager.getCameraCharacteristics(flashID).get(FLASH_INFO_STRENGTH_MAXIMUM_LEVEL);
+ }
+ if (enabled) {
+ if (maxFlashLevel > 1) //good news. we can set levels
+ {
+ callMethod(mCameraManager, "turnOnTorchWithStrengthLevel", flashID, Math.max(Math.round(pct * maxFlashLevel), 1));
+ } else //flash doesn't support levels: go normal
+ {
+ setFlashInternal(true);
+ }
+ } else {
+ mCameraManager.setTorchMode(flashID, false);
+ }
+ } catch (Throwable t) {
+ if (BuildConfig.DEBUG) {
+ log("Oxygen Customizer Error in setting flashlight");
+ log(t);
+ }
+ }
+ }
+
+
+ private String getFlashID(@NonNull CameraManager cameraManager) throws CameraAccessException {
+ String[] ids = cameraManager.getCameraIdList();
+ for (String id : ids) {
+ if (cameraManager.getCameraCharacteristics(id).get(CameraCharacteristics.LENS_FACING) == CameraMetadata.LENS_FACING_BACK) {
+ if (cameraManager.getCameraCharacteristics(id).get(CameraCharacteristics.FLASH_INFO_AVAILABLE)) {
+ return id;
+ }
+ }
+ }
+ return "";
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ViewHelper.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ViewHelper.java
new file mode 100644
index 000000000..626081e4c
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/utils/ViewHelper.java
@@ -0,0 +1,433 @@
+package it.dhd.oxygencustomizer.xposed.utils;
+
+import static de.robv.android.xposed.XposedBridge.log;
+import static de.robv.android.xposed.XposedHelpers.callMethod;
+import static it.dhd.oxygencustomizer.utils.Constants.Preferences.LockscreenClock.LOCKSCREEN_CLOCK_STYLE;
+import static it.dhd.oxygencustomizer.xposed.XPrefs.Xprefs;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.BlurMaskFilter;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
+import android.graphics.Typeface;
+import android.graphics.drawable.ClipDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.LayerDrawable;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import androidx.annotation.AttrRes;
+import androidx.annotation.ColorInt;
+
+import com.airbnb.lottie.LottieAnimationView;
+import com.airbnb.lottie.LottieComposition;
+import com.airbnb.lottie.LottieCompositionFactory;
+import com.airbnb.lottie.LottieDrawable;
+import com.airbnb.lottie.LottieTask;
+import com.airbnb.lottie.RenderMode;
+
+import org.json.JSONObject;
+
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Scanner;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.xposed.ResourceManager;
+
+public class ViewHelper {
+
+ public static void setMargins(Object viewGroup, Context context, int left, int top, int right, int bottom) {
+ if (viewGroup instanceof View) {
+ if (((View) viewGroup).getLayoutParams() instanceof LinearLayout.LayoutParams)
+ ((LinearLayout.LayoutParams) ((View) viewGroup).getLayoutParams()).setMargins(dp2px(context, left), dp2px(context, top), dp2px(context, right), dp2px(context, bottom));
+ else if (((View) viewGroup).getLayoutParams() instanceof FrameLayout.LayoutParams)
+ ((FrameLayout.LayoutParams) ((View) viewGroup).getLayoutParams()).setMargins(dp2px(context, left), dp2px(context, top), dp2px(context, right), dp2px(context, bottom));
+ } else if (viewGroup instanceof ViewGroup.MarginLayoutParams)
+ ((ViewGroup.MarginLayoutParams) viewGroup).setMargins(dp2px(context, left), dp2px(context, top), dp2px(context, right), dp2px(context, bottom));
+ else
+ throw new IllegalArgumentException("The viewGroup object has to be either a View or a ViewGroup.MarginLayoutParams. Found " + viewGroup.getClass().getSimpleName() + " instead.");
+ }
+
+ public static void setPaddings(ViewGroup viewGroup, Context context, int left, int top, int right, int bottom) {
+ viewGroup.setPadding(dp2px(context, left), dp2px(context, top), dp2px(context, right), dp2px(context, bottom));
+ }
+
+ public static int dp2px(Context context, float dp) {
+ return dp2px(context, (int) dp);
+ }
+
+ public static int dp2px(Context context, int dp) {
+ return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
+ }
+
+ public static int dp2px(int dp, Context context) {
+ return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
+ }
+
+ public static void loadLottieAnimation(Context context, int rawResourceId, LottieDrawable lottieDrawable) {
+ LottieTask lottieTask = LottieCompositionFactory.fromRawRes(context, rawResourceId);
+ lottieTask.addListener(result -> {
+ lottieDrawable.setComposition(result);
+ lottieDrawable.playAnimation();
+ });
+ }
+
+ public static JSONObject loadJSONFromRaw(int rawResourceId) {
+ try {
+ InputStream inputStream = ResourceManager.modRes.openRawResource(rawResourceId);
+ String jsonString = convertStreamToString(inputStream);
+ inputStream.close();
+ return new JSONObject(jsonString);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public static InputStream getRawInputStream(int rawResourceId) {
+ if (ResourceManager.modRes == null) {
+ return null;
+ }
+ return ResourceManager.modRes.openRawResource(rawResourceId);
+ }
+
+ public static String convertStreamToString(InputStream is) {
+ if (is == null) return null;
+ Scanner scanner = new Scanner(is);
+ return scanner.hasNext() ? scanner.next() : "";
+ }
+
+ public static LayerDrawable generateProgressDrawable(Context context, int backgroundColor, int progressColor) {
+
+ GradientDrawable backgroundDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{backgroundColor, backgroundColor});
+ backgroundDrawable.setCornerRadius(dp2px(context, 12));
+
+ GradientDrawable progressDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{progressColor, progressColor});
+ progressDrawable.setCornerRadius(dp2px(context, 12));
+
+ ClipDrawable clipDrawable = new ClipDrawable(progressDrawable, Gravity.START, ClipDrawable.HORIZONTAL);
+
+ Drawable[] layers = new Drawable[2];
+ layers[0] = backgroundDrawable;
+ layers[1] = clipDrawable;
+
+ return new LayerDrawable(layers);
+ };
+
+ public static ViewGroup getParent(View view) {
+ return (ViewGroup)view.getParent();
+ }
+
+ public static void removeView(View view) {
+ ViewGroup parent = getParent(view);
+ if(parent != null) {
+ parent.removeView(view);
+ }
+ }
+
+ public static void replaceView(View currentView, View newView) {
+ ViewGroup parent = getParent(currentView);
+ if(parent == null) {
+ return;
+ }
+ final int index = parent.indexOfChild(currentView);
+ removeView(currentView);
+ removeView(newView);
+ newView.setId(currentView.getId());
+ parent.addView(newView, index);
+ }
+
+ public static void findViewWithTagAndChangeColor(View view, String tagContains, int color) {
+ if (view == null) {
+ return;
+ }
+
+ if (view instanceof ViewGroup viewGroup) {
+ for (int i = 0; i < viewGroup.getChildCount(); i++) {
+ View child = viewGroup.getChildAt(i);
+
+ checkTagAndChangeColor(child, tagContains, color);
+
+ if (child instanceof ViewGroup) {
+ findViewWithTagAndChangeColor((ViewGroup) child, tagContains, color);
+ }
+ }
+ } else {
+ checkTagAndChangeColor(view, tagContains, color);
+ }
+ }
+
+ private static void checkTagAndChangeColor(View view, String tagContains, int color) {
+ Object tagObject = view.getTag();
+ if (tagObject != null && tagObject.toString().toLowerCase().contains(tagContains)) {
+ changeViewColor(view, color);
+ }
+ }
+
+
+ public static void findViewWithTagAndChangeBackgroundColor(ViewGroup parent, String tagContains, int color, int radius) {
+ if (parent == null || parent.getChildCount() == 0) {
+ return;
+ }
+
+ Object tagParent = parent.getTag();
+ if (tagParent != null && tagParent.toString().contains(tagContains)) {
+ changeBackgroundColor(parent, color, radius);
+ }
+
+ for (int i = 0; i < parent.getChildCount(); i++) {
+ View child = parent.getChildAt(i);
+
+ Object tagObject = child.getTag();
+ if (tagObject != null && tagObject.toString().contains(tagContains)) {
+ changeBackgroundColor(child, color, radius);
+ }
+
+ if (child instanceof ViewGroup) {
+ findViewWithTagAndChangeBackgroundColor((ViewGroup) child, tagContains, color, radius);
+ }
+ }
+ }
+
+ private static void changeViewColor(View view, int color) {
+ if (view instanceof TextView textView) {
+ textView.setTextColor(color);
+
+ Drawable[] drawablesRelative = textView.getCompoundDrawablesRelative();
+ for (Drawable drawable : drawablesRelative) {
+ if (drawable != null) {
+ drawable.mutate();
+ drawable.setTint(color);
+ drawable.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN));
+ }
+ }
+
+ Drawable[] drawables = textView.getCompoundDrawables();
+ for (Drawable drawable : drawables) {
+ if (drawable != null) {
+ drawable.mutate();
+ drawable.setTint(color);
+ drawable.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN));
+ }
+ }
+ } else if (view instanceof ImageView imageView) {
+ imageView.setColorFilter(color);
+ } else if (view instanceof ViewGroup viewGroup) {
+ viewGroup.setBackgroundTintList(ColorStateList.valueOf(color));
+ } else if (view instanceof ProgressBar progressBar) {
+ progressBar.setProgressTintList(ColorStateList.valueOf(color));
+ progressBar.setProgressBackgroundTintList(ColorStateList.valueOf(color));
+ } else {
+ view.getBackground().mutate().setTint(color);
+ }
+ }
+
+ private static void changeBackgroundColor(View view, int color, int radius) {
+ GradientDrawable gradientDrawable = new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, new int[]{color, color});
+ gradientDrawable.setCornerRadius(radius);
+ if (view instanceof TextView textView) {
+ textView.setBackground(gradientDrawable);
+ } else if (view instanceof ImageView imageView) {
+ imageView.setBackground(gradientDrawable);
+ } else if (view instanceof ViewGroup viewGroup) {
+ viewGroup.setBackground(gradientDrawable);
+ } else if (view instanceof ProgressBar progressBar) {
+ progressBar.setBackground(gradientDrawable);
+ } else {
+ view.getBackground().mutate().setTint(color);
+ }
+ }
+
+ public static void applyFontRecursively(ViewGroup viewGroup, Typeface typeface) {
+ int childCount = viewGroup.getChildCount();
+ for (int i = 0; i < childCount; i++) {
+ View child = viewGroup.getChildAt(i);
+ if (child instanceof ViewGroup) {
+ applyFontRecursively((ViewGroup) child, typeface);
+ } else if (child instanceof TextView textView) {
+ textView.setTypeface(typeface);
+ }
+ }
+ }
+
+ public static void applyTextMarginRecursively(ViewGroup viewGroup, int topMargin) {
+ int childCount = viewGroup.getChildCount();
+ for (int i = 0; i < childCount; i++) {
+ View child = viewGroup.getChildAt(i);
+ if (child instanceof ViewGroup) {
+ applyTextMarginRecursively((ViewGroup) child, topMargin);
+ } else if (child instanceof TextView) {
+ ViewGroup.LayoutParams params = child.getLayoutParams();
+ if (params instanceof LinearLayout.LayoutParams linearParams) {
+ linearParams.topMargin += topMargin;
+ child.setLayoutParams(linearParams);
+ } else if (params instanceof FrameLayout.LayoutParams frameParams) {
+ frameParams.topMargin += topMargin;
+ child.setLayoutParams(frameParams);
+ } else if (params instanceof RelativeLayout.LayoutParams relativeParams) {
+ relativeParams.topMargin += topMargin;
+ child.setLayoutParams(relativeParams);
+ } else {
+ log("Invalid params: " + params);
+ }
+ }
+ }
+ }
+
+ public static void applyTextScalingRecursively(ViewGroup viewGroup, float scaleFactor) {
+ for (int i = 0; i < viewGroup.getChildCount(); i++) {
+ View child = viewGroup.getChildAt(i);
+ if (child instanceof ViewGroup) {
+ applyTextScalingRecursively((ViewGroup) child, scaleFactor);
+ } else if (child instanceof TextView textView) {
+ float originalSize = textView.getTextSize();
+ float newSize = originalSize * scaleFactor;
+ textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, newSize);
+ }
+ }
+ }
+
+ public static void applyTextSizeRecursively(ViewGroup viewGroup, int textSize) {
+ for (int i = 0; i < viewGroup.getChildCount(); i++) {
+ View child = viewGroup.getChildAt(i);
+ if (child instanceof ViewGroup) {
+ applyTextSizeRecursively((ViewGroup) child, textSize);
+ } else if (child instanceof TextView textView) {
+ textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize);
+ }
+ }
+ }
+
+ public static void setTextRecursively(ViewGroup viewGroup, String text) {
+ for (int i = 0; i < viewGroup.getChildCount(); i++) {
+ View child = viewGroup.getChildAt(i);
+ if (child instanceof ViewGroup) {
+ setTextRecursively((ViewGroup) child, text);
+ } else if (child instanceof TextView textView) {
+ textView.setText(text);
+ }
+ }
+ }
+
+
+ public static int getColorResCompat(Context context, @AttrRes int id) {
+ TypedValue typedValue = new TypedValue();
+ Resources.Theme theme = context.getTheme();
+ theme.resolveAttribute(id, typedValue, false);
+ TypedArray arr = context.obtainStyledAttributes(typedValue.data, new int[]{id});
+ @ColorInt int color = arr.getColor(0, -1);
+ arr.recycle();
+ return color;
+ }
+
+ public static void loadLottieAnimationView(
+ Context appContext,
+ Class> lottieAnimationViewClass,
+ View parent,
+ Integer styleIndex) {
+ if (!(parent instanceof ViewGroup) ||
+ parent.findViewWithTag("lottie") == null ||
+ (lottieAnimationViewClass == null && styleIndex == null)) {
+ return;
+ }
+
+ boolean isXposedMode = true;
+ int currentStyleIndex;
+ try {
+ currentStyleIndex = Xprefs.getInt(LOCKSCREEN_CLOCK_STYLE, 0);
+ } catch (Throwable ignored) {
+ if (styleIndex == null) {
+ throw new IllegalStateException("Parameter \"styleIndex\" cannot be null");
+ }
+ isXposedMode = false;
+ currentStyleIndex = styleIndex;
+ }
+ String rawResName = "lottie_lockscreen_clock_" + currentStyleIndex;
+
+ Object lottieAnimView;
+ if (isXposedMode) {
+ if (lottieAnimationViewClass == null) {
+ throw new IllegalStateException("Parameter \"lottieAnimationViewClass\" cannot be null");
+ }
+ try {
+ lottieAnimView = lottieAnimationViewClass.getConstructor(Context.class).newInstance(appContext);
+ } catch (NoSuchMethodException | InstantiationException | IllegalAccessException |
+ InvocationTargetException e) {
+ throw new RuntimeException(e);
+ }
+ } else {
+ lottieAnimView = new LottieAnimationView(appContext);
+ }
+
+ LinearLayout.LayoutParams animationParams = new LinearLayout.LayoutParams(
+ LinearLayout.LayoutParams.MATCH_PARENT,
+ LinearLayout.LayoutParams.MATCH_PARENT
+ );
+ animationParams.gravity = Gravity.CENTER;
+
+ int anim = appContext.getResources().getIdentifier(
+ rawResName,
+ "raw",
+ BuildConfig.APPLICATION_ID
+ );
+
+ if (anim == 0x0) {
+ if (isXposedMode) {
+ log("Oxygen Customizer - " + ViewHelper.class.getSimpleName() + ": " + rawResName + " not found");
+ } else {
+ Log.w(ViewHelper.class.getSimpleName(), rawResName + " not found");
+ }
+ return;
+ }
+
+ InputStream rawRes = appContext.getResources().openRawResource(anim);
+
+ if (isXposedMode) {
+ try {
+ callMethod(lottieAnimView, "setLayoutParams", animationParams);
+ callMethod(lottieAnimView, "setAnimation", rawRes, "cacheKey");
+ callMethod(lottieAnimView, "setRepeatCount", LottieDrawable.INFINITE);
+ callMethod(lottieAnimView, "setScaleType", ImageView.ScaleType.FIT_CENTER);
+ callMethod(lottieAnimView, "setAdjustViewBounds", true);
+ callMethod(lottieAnimView, "enableMergePathsForKitKatAndAbove", true);
+ callMethod(lottieAnimView, "playAnimation");
+ } catch (Throwable ignored) {}
+ } else {
+ LottieAnimationView lottieAnimationView = (LottieAnimationView) lottieAnimView;
+ lottieAnimationView.setLayoutParams(animationParams);
+ lottieAnimationView.setAnimation(rawRes, "cacheKey");
+ lottieAnimationView.setRepeatCount(LottieDrawable.INFINITE);
+ lottieAnimationView.setRenderMode(RenderMode.HARDWARE);
+ lottieAnimationView.setScaleType(ImageView.ScaleType.FIT_CENTER);
+ lottieAnimationView.setAdjustViewBounds(true);
+ lottieAnimationView.enableMergePathsForKitKatAndAbove(true);
+ lottieAnimationView.playAnimation();
+ }
+
+ LinearLayout lottieContainer = parent.findViewWithTag("lottie");
+ lottieContainer.setGravity(Gravity.CENTER);
+
+ if (isXposedMode) {
+ try {
+ callMethod(lottieContainer, "addView", lottieAnimView);
+ } catch (Throwable ignored) {}
+ } else {
+ lottieContainer.addView((LottieAnimationView) lottieAnimView);
+ }
+
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/BatteryBarView.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/BatteryBarView.java
new file mode 100644
index 000000000..6589056d9
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/BatteryBarView.java
@@ -0,0 +1,306 @@
+package it.dhd.oxygencustomizer.xposed.views;
+
+
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider.getCurrentLevel;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider.isCharging;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider.isFastCharging;
+import static it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider.isPowerSaving;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.RadialGradient;
+import android.graphics.Shader;
+import android.graphics.drawable.Animatable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.ShapeDrawable;
+import android.graphics.drawable.shapes.RectShape;
+import android.text.TextUtils;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.Animation;
+import android.view.animation.TranslateAnimation;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+
+import androidx.core.graphics.ColorUtils;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+import it.dhd.oxygencustomizer.xposed.hooks.systemui.BatteryDataProvider;
+
+public class BatteryBarView extends FrameLayout {
+ private static int[] shadeColors;
+ private final boolean RTL;
+ private static float[] shadeLevels = new float[0];
+ private final ShapeDrawable mDrawable = new ShapeDrawable();
+ FrameLayout maskLayout;
+ private boolean colorful = false;
+ private int alphaPct = 100;
+ private int singleColorTone = Color.WHITE;
+ private boolean isCenterBased = false;
+ private int barHeight = 10;
+ private final ImageView barView;
+ private boolean onTop = true;
+ @SuppressLint("StaticFieldLeak")
+ private static BatteryBarView instance = null;
+ private boolean onlyWhileCharging = false;
+ private boolean mIsEnabled = true;
+ private boolean mIsHidden = false;
+ private static List batteryLevels = Arrays.asList(20f, 40f);
+ private static int[] batteryColors = new int[]{Color.RED, Color.YELLOW};
+ private static int chargingColor = Color.WHITE;
+ private static int fastChargingColor = Color.WHITE;
+ private static boolean indicateCharging = false;
+ private static boolean indicateFastCharging = false;
+ private static boolean transitColors = false;
+ private static boolean indicatePowerSave = false;
+ private static int powerSaveColor = Color.YELLOW;
+ private static boolean animateCharging = true;
+ private boolean isAnimating = false;
+ // Total animation duration
+ private static final int ANIM_DURATION = 1000; // 5 seconds
+
+ public static void setStaticColor(List batteryLevels, int[] batteryColors, boolean indicateCharging,
+ int chargingColor, boolean indicateFastCharging, int fastChargingColor,
+ boolean indicatePowerSave, int powerSaveColor, boolean transitColors) {
+ BatteryBarView.transitColors = transitColors;
+ BatteryBarView.batteryLevels = batteryLevels;
+ BatteryBarView.batteryColors = batteryColors;
+ BatteryBarView.chargingColor = chargingColor;
+ BatteryBarView.fastChargingColor = fastChargingColor;
+ BatteryBarView.indicatePowerSave = indicatePowerSave;
+ BatteryBarView.powerSaveColor = powerSaveColor;
+ BatteryBarView.indicateCharging = indicateCharging;
+ BatteryBarView.indicateFastCharging = indicateFastCharging;
+ }
+
+ public void setOnTop(boolean onTop) {
+ this.onTop = onTop;
+
+ refreshLayout();
+ }
+
+ public void setOnlyWhileCharging(boolean state) {
+ onlyWhileCharging = state;
+ refreshLayout();
+ }
+
+ @Override
+ public void onAttachedToWindow() {
+ super.onAttachedToWindow();
+
+ refreshLayout();
+ }
+
+ public void refreshLayout() {
+ if (!isAttachedToWindow()) return;
+
+ refreshVisibility();
+
+ if (barView.getVisibility() == GONE) return;
+ maskLayout.setLayoutParams(maskLayoutParams());
+ barView.setLayoutParams(barLayoutParams());
+
+ refreshColors(barView.getWidth(), barView.getHeight());
+ mDrawable.invalidateSelf();
+
+ //if (isCharging() && animateCharging)
+ //start();
+ }
+
+ private LayoutParams maskLayoutParams() {
+ LayoutParams result = new LayoutParams(Math.round(getWidth() * getCurrentLevel() / 100f), ViewGroup.LayoutParams.MATCH_PARENT);
+ result.gravity = (isCenterBased) ? Gravity.CENTER : Gravity.START;
+ return result;
+ }
+
+ @SuppressWarnings("SpellCheckingInspection")
+ @Override
+ public void onSizeChanged(int w, int h, int oldw, int oldh) {
+ super.onSizeChanged(w, h, oldw, oldh);
+ refreshLayout();
+ }
+
+ public BatteryBarView(Context context) {
+ super(context);
+ instance = this;
+
+ this.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
+
+ mDrawable.setShape(new RectShape());
+ this.setSingleColorTone(singleColorTone);
+ this.setAlphaPct(alphaPct);
+
+ barView = new ImageView(context);
+ barView.setImageDrawable(mDrawable);
+
+ maskLayout = new FrameLayout(context);
+
+ maskLayout.addView(barView);
+ maskLayout.setClipChildren(true);
+
+ this.addView(maskLayout);
+ //this.addView(mChargerLayout);
+ this.setClipChildren(true);
+
+ RTL = (TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) == LAYOUT_DIRECTION_RTL);
+
+ //StatusbarMods.registerClockVisibilityCallback(this::setVisible);
+
+ refreshLayout();
+
+ BatteryBarView instance = this;
+ BatteryDataProvider.registerInfoCallback(() -> instance.post(instance::refreshLayout));
+ }
+
+ @Override
+ public void setLayoutDirection(int direction) {
+ super.setLayoutDirection(direction);
+ }
+
+ private LayoutParams barLayoutParams() {
+ LayoutParams result = new LayoutParams(getWidth(), barHeight);
+
+ result.gravity = (isCenterBased) ? Gravity.CENTER : Gravity.START;
+
+ result.gravity |= (onTop) ? Gravity.TOP : Gravity.BOTTOM;
+
+ return result;
+ }
+
+ private LayoutParams chargerLayoutParams() {
+ return new LayoutParams(140, ViewGroup.LayoutParams.MATCH_PARENT);
+
+ }
+
+ public void setBarHeight(int height) {
+ barHeight = height;
+ refreshLayout();
+ }
+
+ public void setColorful(boolean colorful) {
+ this.colorful = colorful;
+ refreshLayout();
+ }
+
+ public void setSingleColorTone(int colorTone) {
+ this.singleColorTone = colorTone;
+ refreshLayout();
+ }
+
+ public void refreshColors(int lenX, int lenY) {
+ if (lenX == 0) return; //we're not ready yet
+ refreshShadeColors();
+ Paint mPaint = mDrawable.getPaint();
+ mPaint.setShader(null);
+ mDrawable.setIntrinsicWidth(lenX);
+ mDrawable.setIntrinsicHeight(lenY);
+ if (isFastCharging() && indicateFastCharging) //fast charging color
+ {
+ mPaint.setColor(fastChargingColor);
+ } else if (isCharging() && indicateCharging) //normal charging color
+ {
+ mPaint.setColor(chargingColor);
+ } else if (isPowerSaving() && indicatePowerSave) { //power save color
+ mPaint.setColor(powerSaveColor);
+ } else if (!colorful || shadeColors == null) { //not charging color
+ for (int i = 0; i < batteryLevels.size(); i++) {
+ if (getCurrentLevel() <= batteryLevels.get(i)) {
+ if (transitColors && i > 0) {
+ float range = batteryLevels.get(i) - batteryLevels.get(i - 1);
+ float currentPos = getCurrentLevel() - batteryLevels.get(i - 1);
+ float ratio = currentPos / range;
+ mPaint.setColor(ColorUtils.blendARGB(batteryColors[i - 1], batteryColors[i], ratio));
+ } else {
+ mPaint.setColor(batteryColors[i]);
+ }
+ return;
+ }
+ }
+ mPaint.setColor(singleColorTone);
+ } else //it's colorful
+ {
+ float cX = isCenterBased ? lenX / 2f : ((RTL) ? lenX : 0);
+ float cY = isCenterBased ? lenY / 2f : ((RTL) ? lenY : 0);
+ float radius = isCenterBased ? lenX / 2f : lenX;
+
+ RadialGradient colorfulShader = new RadialGradient(cX, cY, radius, shadeColors, shadeLevels, Shader.TileMode.CLAMP);
+ mPaint.setShader(colorfulShader);
+ }
+ }
+
+ private static void refreshShadeColors() {
+ if (batteryColors == null || batteryLevels.isEmpty()) return;
+
+ shadeColors = new int[batteryLevels.size() * 2 + 2];
+ shadeLevels = new float[shadeColors.length];
+ float prev = 0;
+ for (int i = 0; i < batteryLevels.size(); i++) {
+ float rangeLength = batteryLevels.get(i) - prev;
+ shadeLevels[2 * i] = (prev + rangeLength * .3f) / 100;
+ shadeColors[2 * i] = batteryColors[i];
+
+ shadeLevels[2 * i + 1] = (batteryLevels.get(i) - rangeLength * .3f) / 100;
+ shadeColors[2 * i + 1] = batteryColors[i];
+
+ prev = batteryLevels.get(i);
+ }
+
+ shadeLevels[shadeLevels.length - 2] = (batteryLevels.get(batteryLevels.size() - 1) + (100 - batteryLevels.get(batteryLevels.size() - 1)) * .3f) / 100;
+ shadeColors[shadeColors.length - 2] = Color.GREEN;
+ shadeLevels[shadeLevels.length - 1] = 1f;
+ shadeColors[shadeColors.length - 1] = Color.GREEN;
+ }
+
+
+ public void setAlphaPct(int alphaPct) {
+ this.alphaPct = alphaPct;
+ mDrawable.setAlpha(Math.round(alphaPct * 2.55f));
+ }
+
+ public void setEnabled(boolean enabled) {
+ this.mIsEnabled = enabled;
+ refreshVisibility();
+ }
+
+ public void setVisible(boolean visible) {
+ this.mIsHidden = !visible;
+ refreshVisibility();
+ }
+
+ private void refreshVisibility() {
+ if (!mIsEnabled || mIsHidden || (onlyWhileCharging && !isCharging())) {
+ barView.setVisibility(GONE);
+ } else {
+ barView.setVisibility(VISIBLE);
+ }
+ }
+
+ public static BatteryBarView getInstance(Context context) {
+ if (instance != null) return instance;
+ return new BatteryBarView(context);
+ }
+
+ public static BatteryBarView getInstance() {
+ return instance;
+ }
+
+ public static boolean hasInstance() {
+ return (instance != null);
+ }
+
+ public void setCenterBased(boolean bbSetCentered) {
+ isCenterBased = bbSetCentered;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/CurrentWeatherView.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/CurrentWeatherView.java
new file mode 100644
index 000000000..ddb0634c9
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/CurrentWeatherView.java
@@ -0,0 +1,312 @@
+package it.dhd.oxygencustomizer.xposed.views;
+
+/*
+ * Copyright (C) 2023-2024 crDroid Android Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import static de.robv.android.xposed.XposedBridge.log;
+import static it.dhd.oxygencustomizer.xposed.ResourceManager.modRes;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.applyTextSizeRecursively;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.dp2px;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.setMargins;
+import static it.dhd.oxygencustomizer.xposed.utils.ViewHelper.setTextRecursively;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.os.Handler;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.core.content.res.ResourcesCompat;
+
+import it.dhd.oxygencustomizer.BuildConfig;
+import it.dhd.oxygencustomizer.R;
+import it.dhd.oxygencustomizer.weather.WeatherUpdateService;
+import it.dhd.oxygencustomizer.xposed.utils.OmniJawsClient;
+import it.dhd.oxygencustomizer.xposed.utils.ViewHelper;
+
+
+public class CurrentWeatherView extends LinearLayout implements OmniJawsClient.OmniJawsObserver {
+
+ static final String TAG = "CurrentWeatherView: ";
+
+ private ImageView mCurrentImage, mHumImage, mWindImage;
+ private OmniJawsClient mWeatherClient;
+ private OmniJawsClient.WeatherInfo mWeatherInfo;
+ private TextView mLeftText, mRightText, mWeatherText; // Weather Layout
+ private TextView mHumText, mWindText;
+ private LinearLayout mWeatherLayout, mHumLayout, mWindLayout;
+ private Drawable mHumDrawable, mWindDrawable;
+
+ private boolean mShowWeatherLocation;
+ private boolean mShowWeatherText;
+ private boolean mShowWeatherHumidity, mShowWeatherWind;
+ @SuppressLint("StaticFieldLeak")
+ public static CurrentWeatherView instance = null;
+
+ private final Context mContext;
+
+ public CurrentWeatherView(Context context) {
+ super(context);
+ instance = this;
+ mContext = context;
+ mWeatherClient = new OmniJawsClient(context, true);
+
+ setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
+ setOrientation(VERTICAL);
+
+ mWeatherLayout = new LinearLayout(context);
+ mWeatherLayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ mWeatherLayout.setOrientation(HORIZONTAL);
+
+ mLeftText = new TextView(context);
+ mLeftText.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ mLeftText.setTextColor(Color.WHITE); // Aggiungi il colore desiderato
+ mLeftText.setSingleLine(true);
+ mLeftText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
+ mLeftText.setEllipsize(TextUtils.TruncateAt.END);
+ mLeftText.setTag("text");
+
+ mCurrentImage = new ImageView(context);
+ LinearLayout.LayoutParams imageParams = new LinearLayout.LayoutParams(dp2px(mContext, 18), dp2px(mContext, 18));
+ mCurrentImage.setLayoutParams(imageParams);
+
+ mRightText = new TextView(context);
+ mRightText.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ mRightText.setTextColor(Color.WHITE);
+ mRightText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
+ mRightText.setSingleLine(true);
+ mRightText.setTag("text");
+
+ mWeatherText = new TextView(context);
+ mWeatherText.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ mWeatherText.setTextColor(Color.WHITE);
+ mWeatherText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
+ mWeatherText.setSingleLine(true);
+ mWeatherText.setTag("text");
+
+ mWeatherLayout.addView(mLeftText);
+ mWeatherLayout.addView(mCurrentImage);
+ mWeatherLayout.addView(mRightText);
+ mWeatherLayout.addView(mWeatherText);
+
+ mHumLayout = new LinearLayout(context);
+ mHumLayout.setOrientation(HORIZONTAL);
+ mHumLayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ setMargins(mHumLayout, context, 0, dp2px(context, 1), 0, 0);
+
+ mHumImage = new ImageView(context);
+ mHumImage.setLayoutParams(new ViewGroup.LayoutParams(dp2px(context, 18), dp2px(context, 18)));
+ mHumImage.setScaleType(ImageView.ScaleType.FIT_XY);
+ mHumDrawable = ResourcesCompat.getDrawable(
+ modRes,
+ modRes.getIdentifier("ic_humidity_symbol", "drawable", BuildConfig.APPLICATION_ID),
+ context.getTheme()
+ );
+ mHumImage.setImageDrawable(mHumDrawable);
+
+ mHumText = new TextView(context);
+ mHumText.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ mHumText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
+ mHumText.setTextColor(Color.WHITE);
+ mHumText.setTag("text");
+ setMargins(mHumText, context, dp2px(context, 2), 0, 0, 0);
+
+ mHumLayout.addView(mHumImage);
+ mHumLayout.addView(mHumText);
+
+ mWindLayout = new LinearLayout(context);
+ mWindLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ setMargins(mWindLayout, context, 0, dp2px(context, 1), 0, 0);
+
+ mWindImage = new ImageView(context);
+ mWindImage.setLayoutParams(new LayoutParams(dp2px(context, 18), dp2px(context, 18)));
+ mWindImage.setScaleType(ImageView.ScaleType.FIT_XY);
+ mWindDrawable = ResourcesCompat.getDrawable(
+ modRes,
+ modRes.getIdentifier("ic_wind_symbol", "drawable", BuildConfig.APPLICATION_ID),
+ context.getTheme()
+ );
+ mWindImage.setImageDrawable(mWindDrawable);
+
+ mWindText = new TextView(context);
+ mWindText.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ mWindText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
+ mWindText.setTextColor(Color.WHITE);
+ mWindText.setTag("text");
+ setMargins(mWindText, context, dp2px(context, 2), 0, 0, 0);
+
+ mWindLayout.addView(mWindImage);
+ mWindLayout.addView(mWindText);
+
+ addView(mWeatherLayout);
+ addView(mHumLayout);
+ addView(mWindLayout);
+
+ enableUpdates();
+ }
+
+ public static void updateSizes(int weatherTextSize, int weatherImageSize) {
+ if (instance == null) return;
+ instance.mCurrentImage.setLayoutParams(new LinearLayout.LayoutParams(dp2px(instance.mContext, weatherImageSize), dp2px(instance.mContext, weatherImageSize)));
+ instance.mHumImage.setLayoutParams(new LinearLayout.LayoutParams(dp2px(instance.mContext, weatherImageSize), dp2px(instance.mContext, weatherImageSize)));
+ instance.mWindImage.setLayoutParams(new LinearLayout.LayoutParams(dp2px(instance.mContext, weatherImageSize), dp2px(instance.mContext, weatherImageSize)));
+ applyTextSizeRecursively(instance, weatherTextSize);
+ }
+
+ public static void updateColors(int color) {
+ if (instance == null) return;
+ ViewHelper.findViewWithTagAndChangeColor(instance, "text", color);
+ }
+
+ public void enableUpdates() {
+ log(TAG + "enableUpdates");
+ if (mWeatherClient != null) {
+ mWeatherClient.addObserver(this);
+ queryAndUpdateWeather();
+ }
+ }
+
+ public void disableUpdates() {
+ if (mWeatherClient != null) {
+ mWeatherClient.removeObserver(this);
+ }
+ }
+
+ private void setErrorView() {
+ log(TAG + "setErrorView");
+ setTextRecursively(instance, "");
+ mCurrentImage.setImageDrawable(null);
+ mHumImage.setImageDrawable(null);
+ mWindImage.setImageDrawable(null);
+ }
+
+ @Override
+ public void weatherError(int errorReason) {
+ // since this is shown in ambient and lock screen
+ // it would look bad to show every error since the
+ // screen-on revovery of the service had no chance
+ // to run fast enough
+ // so only show the disabled state
+ log(TAG + "weatherError " + errorReason);
+ if (errorReason == OmniJawsClient.EXTRA_ERROR_DISABLED) {
+ mWeatherInfo = null;
+ setErrorView();
+ }
+ }
+
+ @Override
+ public void weatherUpdated() {
+ queryAndUpdateWeather();
+ }
+
+ @Override
+ public void updateSettings() {
+ queryAndUpdateWeather();
+ }
+
+ @SuppressLint("SetTextI18n")
+ private void queryAndUpdateWeather() {
+ log(TAG + "queryAndUpdateWeather");
+ try {
+ if (mWeatherClient == null || !mWeatherClient.isOmniJawsEnabled()) {
+ setErrorView();
+ return;
+ }
+ mWeatherClient.queryWeather();
+ mWeatherInfo = mWeatherClient.getWeatherInfo();
+ if (mWeatherInfo != null) {
+ log(TAG + "Weather query successful");
+ String formattedCondition = mWeatherInfo.condition;
+ if (formattedCondition.toLowerCase().contains("clouds")) {
+ formattedCondition = modRes.getString(R.string.weather_condition_clouds);
+ } else if (formattedCondition.toLowerCase().contains("rain")) {
+ formattedCondition = modRes.getString(R.string.weather_condition_rain);
+ } else if (formattedCondition.toLowerCase().contains("clear")) {
+ formattedCondition = modRes.getString(R.string.weather_condition_clear);
+ } else if (formattedCondition.toLowerCase().contains("storm")) {
+ formattedCondition = modRes.getString(R.string.weather_condition_storm);
+ } else if (formattedCondition.toLowerCase().contains("snow")) {
+ formattedCondition = modRes.getString(R.string.weather_condition_snow);
+ } else if (formattedCondition.toLowerCase().contains("wind")) {
+ formattedCondition = modRes.getString(R.string.weather_condition_wind);
+ } else if (formattedCondition.toLowerCase().contains("mist")) {
+ formattedCondition = modRes.getString(R.string.weather_condition_mist);
+ }
+ log("right: " + mWeatherInfo.temp + " " + mWeatherInfo.tempUnits);
+ Drawable d = mWeatherClient.getWeatherConditionImage(mWeatherInfo.conditionCode);
+ mCurrentImage.setImageDrawable(d);
+ mRightText.setText(mWeatherInfo.temp + " " + mWeatherInfo.tempUnits);
+ mLeftText.setText(mWeatherInfo.city);
+ mLeftText.setVisibility(View.VISIBLE);
+ mWeatherText.setText(" · " + formattedCondition);
+ mWeatherText.setVisibility(View.VISIBLE);
+
+ mHumImage.setImageDrawable(mHumDrawable);
+ mHumText.setText(mWeatherInfo.humidity);
+ mHumLayout.setVisibility(mShowWeatherHumidity ? View.VISIBLE : View.GONE);
+
+ mWindImage.setImageDrawable(mWindDrawable);
+ mWindText.setText(mWeatherInfo.windDirection + " " + mWeatherInfo.pinWheel + " · " + mWeatherInfo.windSpeed + " " + mWeatherInfo.windUnits);
+ mWindLayout.setVisibility(mShowWeatherWind ? View.VISIBLE : View.GONE);
+
+ }
+ } catch(Exception e) {
+ log(TAG + "Weather query failed");
+ Log.e(TAG, "Weather query failed", e);
+ }
+ }
+
+ public static void updateWeatherSettings(boolean showLocation, boolean showText,
+ boolean showHumidity, boolean showWind) {
+ log(TAG + "updateWeatherSettings " + (instance!=null));
+ instance.mShowWeatherLocation = showLocation;
+ instance.mShowWeatherText = showText;
+ instance.mShowWeatherHumidity = showHumidity;
+ instance.mShowWeatherWind = showWind;
+ instance.mLeftText.setVisibility(showLocation ? View.VISIBLE : View.GONE);
+ instance.mWeatherText.setVisibility(showText ? View.VISIBLE : View.GONE);
+ instance.mHumLayout.setVisibility(showHumidity ? View.VISIBLE : View.GONE);
+ instance.mWindLayout.setVisibility(showWind ? View.VISIBLE : View.GONE);
+ instance.updateSettings();
+ }
+
+ public static boolean hasInstance() {
+ return instance != null;
+ }
+
+ public static CurrentWeatherView getInstance(Context c) {
+ if (instance!=null) return instance;
+ return new CurrentWeatherView(c);
+ }
+
+ public static CurrentWeatherView getInstance() {
+ return instance;
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/PulseView.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/PulseView.java
new file mode 100644
index 000000000..a94a8174a
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/PulseView.java
@@ -0,0 +1,63 @@
+package it.dhd.oxygencustomizer.xposed.views;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ *
+ * Copyright (C) 2019 The AquariOS Project
+ *
+ * @author: Randall Rushing
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This is were we draw Pulse. Attach to a ViewGroup and let the
+ * eye candy happen
+ *
+ */
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.FrameLayout;
+
+import androidx.annotation.NonNull;
+
+import it.dhd.oxygencustomizer.xposed.views.pulse.PulseControllerImpl;
+
+public class PulseView extends View {
+ public static final String TAG = "PulseView";
+
+ private static PulseControllerImpl mPulse;
+
+ public PulseView(Context context, PulseControllerImpl controller) {
+ super(context);
+ mPulse = controller;
+ setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
+ setWillNotDraw(false);
+ setTag(TAG);
+ }
+
+ @Override
+ protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+ mPulse.onSizeChanged(w, h, oldw, oldh);
+ super.onSizeChanged(w, h, oldw, oldh);
+ }
+
+ @Override
+ public void onDraw(@NonNull Canvas canvas) {
+ mPulse.onDraw(canvas);
+ super.onDraw(canvas);
+ }
+
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/VisualizerView.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/VisualizerView.java
new file mode 100644
index 000000000..5bb49aeb0
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/VisualizerView.java
@@ -0,0 +1,82 @@
+package it.dhd.oxygencustomizer.xposed.views;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.Gravity;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+
+import androidx.annotation.AttrRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+public class VisualizerView extends FrameLayout {
+
+ private boolean mAttached;
+ @SuppressLint("StaticFieldLeak")
+ private static VisualizerView instance = null;
+
+ public VisualizerView(@NonNull Context context) {
+ super(context);
+ FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
+ params.gravity = Gravity.BOTTOM;
+ this.setLayoutParams(params);
+ instance = this;
+
+ }
+
+ public static VisualizerView getInstance(Context context) {
+ if (instance != null) return instance;
+ return new VisualizerView(context);
+ }
+
+ public static VisualizerView getInstance() {
+ return instance;
+ }
+
+ public static boolean hasInstance() {
+ return instance != null;
+ }
+
+ public VisualizerView(@NonNull Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public VisualizerView(@NonNull Context context, @Nullable AttributeSet attrs,
+ @AttrRes int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ @Override
+ public void onAttachedToWindow() {
+ mAttached = true;
+ super.onAttachedToWindow();
+ }
+
+ @Override
+ public void onDetachedFromWindow() {
+ mAttached = false;
+ super.onDetachedFromWindow();
+ }
+
+ public boolean isAttached() {
+ return mAttached;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/ColorAnimator.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/ColorAnimator.java
new file mode 100644
index 000000000..e6bfe94b2
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/ColorAnimator.java
@@ -0,0 +1,139 @@
+package it.dhd.oxygencustomizer.xposed.views.pulse;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ * Copyright (C) 2014 The TeamEos Project
+ * Copyright (C) 2016-2023 crDroid Android Project
+ *
+ * @author: Randall Rushing
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Control class for Pulse media fuctions and visualizer state management
+ * Basic logic flow inspired by Roman Birg aka romanbb in his Equalizer
+ * tile produced for Cyanogenmod
+ *
+ */
+
+import android.animation.ValueAnimator;
+import android.content.res.Configuration;
+import android.graphics.Color;
+
+public class ColorAnimator implements ValueAnimator.AnimatorUpdateListener {
+ public interface ColorAnimationListener {
+ void onConfigChanged(Configuration newConfig);
+
+ default void onColorChanged(ColorAnimator colorAnimator, int color) {}
+ default void onStartAnimation(ColorAnimator colorAnimator, int firstColor) {}
+ default void onStopAnimation(ColorAnimator colorAnimator, int lastColor) {}
+ }
+
+ public static final int ANIM_DEF_DURATION = 10 * 1000;
+ public static final String RED = "#ffff8080";
+ public static final String BLUE = "#ff8080ff";
+
+ protected final float[] from = new float[3], to = new float[3], hsv = new float[3];
+
+ protected ValueAnimator mColorAnim;
+ protected long mAnimTime = ANIM_DEF_DURATION;
+ protected int mFromColor = Color.parseColor(RED);
+ protected int mToColor = Color.parseColor(BLUE);
+ protected int mLastColor = Color.parseColor(RED);
+ protected boolean mIsRunning;
+
+ protected ColorAnimationListener mListener;
+
+ public ColorAnimator() {
+ this(ValueAnimator.ofFloat(0, 1));
+ }
+
+ public ColorAnimator(ValueAnimator valueAnimator) {
+ this(valueAnimator, ANIM_DEF_DURATION);
+ }
+
+ public ColorAnimator(ValueAnimator valueAnimator, long animDurationMillis) {
+ this(valueAnimator, animDurationMillis, Color.parseColor(RED), Color.parseColor(BLUE));
+ }
+
+ public ColorAnimator(ValueAnimator valueAnimator, long animDurationMillis, int fromColor,
+ int toColor) {
+ mAnimTime = animDurationMillis;
+ mFromColor = fromColor;
+ mToColor = toColor;
+ mColorAnim = valueAnimator;
+ mColorAnim.addUpdateListener(this);
+ }
+
+ public void start() {
+ stop();
+ Color.colorToHSV(mFromColor, from);
+ Color.colorToHSV(mToColor, to);
+ mColorAnim.setDuration(mAnimTime);
+ mColorAnim.setRepeatMode(ValueAnimator.REVERSE);
+ mColorAnim.setRepeatCount(ValueAnimator.INFINITE);
+ if (mListener != null) {
+ mListener.onStartAnimation(this, mFromColor);
+ }
+ mColorAnim.start();
+ mIsRunning = true;
+ }
+
+ public void stop() {
+ if (mColorAnim.isStarted()) {
+ mColorAnim.end();
+ mIsRunning = false;
+ if (mListener != null) {
+ mListener.onStopAnimation(this, mLastColor);
+ }
+ }
+ }
+
+ public boolean isRunning() {
+ return mIsRunning;
+ }
+
+ public void setAnimationTime(long millis) {
+ if (mAnimTime != millis) {
+ mAnimTime = millis;
+ if (mColorAnim.isRunning()) {
+ start();
+ }
+ }
+ }
+
+ public void setColorAnimatorListener(ColorAnimationListener listener) {
+ mListener = listener;
+ }
+
+ public void removeColorAnimatorListener(ColorAnimationListener listener) {
+ mListener = null;
+ }
+
+ public void onAnimationUpdate(ValueAnimator animation) {
+ // Transition along each axis of HSV (hue, saturation, value)
+ hsv[0] = from[0] + (to[0] - from[0]) * animation.getAnimatedFraction();
+ hsv[1] = from[1] + (to[1] - from[1]) * animation.getAnimatedFraction();
+ hsv[2] = from[2] + (to[2] - from[2]) * animation.getAnimatedFraction();
+
+ mLastColor = Color.HSVToColor(hsv);
+
+ if (mListener != null) {
+ mListener.onColorChanged(this, mLastColor);
+ }
+ }
+
+ public int getCurrentColor() {
+ return mLastColor;
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/ColorController.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/ColorController.java
new file mode 100644
index 000000000..5c39b22dc
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/ColorController.java
@@ -0,0 +1,158 @@
+package it.dhd.oxygencustomizer.xposed.views.pulse;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ * Copyright (C) 2014 The TeamEos Project
+ * Copyright (C) 2016-2023 crDroid Android Project
+ *
+ * @author: Randall Rushing
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Control class for Pulse media fuctions and visualizer state management
+ * Basic logic flow inspired by Roman Birg aka romanbb in his Equalizer
+ * tile produced for Cyanogenmod
+ *
+ */
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.util.Log;
+
+import androidx.core.content.res.ResourcesCompat;
+
+import it.dhd.oxygencustomizer.xposed.utils.DrawableConverter;
+
+public class ColorController
+ implements ColorAnimator.ColorAnimationListener {
+
+ @SuppressLint("StaticFieldLeak")
+ private static ColorController instance = null;
+ public static final int COLOR_TYPE_ACCENT = 0;
+ public static final int COLOR_TYPE_USER = 1;
+ public static final int COLOR_TYPE_LAVALAMP = 2;
+ public static final int COLOR_TYPE_AUTO = 3;
+ public static final int LAVA_LAMP_SPEED_DEF = 10000;
+
+ private Context mContext;
+ private Renderer mRenderer;
+ private ColorAnimator mLavaLamp;
+ private int mColorType = COLOR_TYPE_LAVALAMP;
+ private int mAccentColor;
+ private int mColor;
+ private int mAlbumColor;
+
+ public ColorController(
+ Context context) {
+ mContext = context;
+ instance = this;
+ mLavaLamp = new ColorAnimator();
+ mLavaLamp.setColorAnimatorListener(this);
+ mAccentColor = getAccentColor();
+ mAlbumColor = mAccentColor;
+ }
+
+ public static boolean hasInstance() {
+ return (instance != null);
+ }
+
+ public static ColorController getInstance() {
+ return instance;
+ }
+
+ void setRenderer(Renderer renderer) {
+ mRenderer = renderer;
+ notifyRenderer();
+ }
+
+ public void setColorType(int colorType) {
+ mColorType = colorType;
+ if (colorType == COLOR_TYPE_LAVALAMP) {
+ stopLavaLamp();
+ }
+ notifyRenderer();
+ }
+
+ public void setCustomColor(int color) {
+ mColor = color;
+ notifyRenderer();
+ }
+
+ public void setLavaLampSpeed(int speed) {
+ mLavaLamp.setAnimationTime(speed);
+ }
+
+ void notifyRenderer() {
+ if (mRenderer != null) {
+ if (mColorType == COLOR_TYPE_ACCENT) {
+ mRenderer.onUpdateColor(mAccentColor);
+ } else if (mColorType == COLOR_TYPE_USER) {
+ mRenderer.onUpdateColor(mColor);
+ } else if (mColorType == COLOR_TYPE_LAVALAMP && mRenderer.isValidStream()) {
+ startLavaLamp();
+ } else if (mColorType == COLOR_TYPE_AUTO) {
+ mRenderer.onUpdateColor(mAlbumColor);
+ }
+ }
+ }
+
+ void startLavaLamp() {
+ if (mColorType == COLOR_TYPE_LAVALAMP) {
+ mLavaLamp.start();
+ }
+ }
+
+ void stopLavaLamp() {
+ mLavaLamp.stop();
+ }
+
+ int getAccentColor() {
+ return ResourcesCompat.getColor(mContext.getResources(), android.R.color.system_accent1_600, mContext.getTheme());
+ }
+
+ @Override
+ public void onConfigChanged(Configuration newConfig) {
+ final int lastAccent = mAccentColor;
+ final int currentAccent = getAccentColor();
+ if (lastAccent != currentAccent) {
+ mAccentColor = currentAccent;
+ if (mRenderer != null && mColorType == COLOR_TYPE_ACCENT) {
+ mRenderer.onUpdateColor(mAccentColor);
+ }
+ }
+ }
+
+ @Override
+ public void onColorChanged(ColorAnimator colorAnimator, int color) {
+ if (mRenderer != null) {
+ mRenderer.onUpdateColor(color);
+ }
+ }
+
+ public void setMediaNotificationColor(int color) {
+ Log.d("ColorController", "setMediaNotificationColor: " + color);
+ if (color != 0) {
+ // be sure the color has an acceptable contrast against black navbar
+ mAlbumColor = DrawableConverter.findContrastColorAgainstDark(color, 0x000000, true, 2);
+ // now be sure the color also has an acceptable contrast against white navbar
+ mAlbumColor = DrawableConverter.findContrastColor(mAlbumColor, 0xffffff, true, 2);
+ } else {
+ // fallback to accent color if the media notification isn't colorized
+ mAlbumColor = mAccentColor;
+ }
+ if (mRenderer != null && mColorType == COLOR_TYPE_AUTO) {
+ mRenderer.onUpdateColor(mAlbumColor);
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/FFTAverage.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/FFTAverage.java
new file mode 100644
index 000000000..eaed0b437
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/FFTAverage.java
@@ -0,0 +1,43 @@
+package it.dhd.oxygencustomizer.xposed.views.pulse;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ *
+ * @author: Ritayan Chakraborty
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.ArrayDeque;
+
+class FFTAverage {
+ private static final int WINDOW_LENGTH = 2;
+ private static final float WINDOW_LENGTH_F = WINDOW_LENGTH;
+ private ArrayDeque window = new ArrayDeque<>(WINDOW_LENGTH);
+ private float average;
+
+ int average(int dB) {
+ // Waiting until window is full
+ if (window.size() >= WINDOW_LENGTH) {
+ Float first = window.pollFirst();
+ if (first != null)
+ average -= first;
+ }
+ float newValue = dB / WINDOW_LENGTH_F;
+ average += newValue;
+ window.offerLast(newValue);
+
+ return Math.round(average);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/FadingBlockRenderer.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/FadingBlockRenderer.java
new file mode 100644
index 000000000..8ce73134f
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/FadingBlockRenderer.java
@@ -0,0 +1,255 @@
+package it.dhd.oxygencustomizer.xposed.views.pulse;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ *
+ * Copyright 2011, Felix Palmer
+ * Copyright (C) 2014 The TeamEos Project
+ * Copyright (C) 2016-2022 crDroid Android Project
+ *
+ * AOSP Navigation implementation by
+ * @author: Randall Rushing
+ *
+ * Licensed under the MIT license:
+ * http://creativecommons.org/licenses/MIT/
+ *
+ * Old school FFT renderer adapted from
+ * @link https://github.com/felixpalmer/android-visualizer
+ *
+ */
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.Bitmap.Config;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.PorterDuff.Mode;
+import android.graphics.PorterDuffXfermode;
+import android.os.Handler;
+import android.util.TypedValue;
+
+import it.dhd.oxygencustomizer.xposed.views.PulseView;
+
+public class FadingBlockRenderer extends Renderer {
+ //private static final int DEF_PAINT_ALPHA = (byte) 188;
+
+ @SuppressLint("StaticFieldLeak")
+ private static FadingBlockRenderer instance = null;
+ private static final int DBFUZZ = 2;
+ private byte[] mFFTBytes;
+ private Paint mPaint;
+ private Paint mFadePaint;
+ private boolean mVertical;
+ private boolean mLeftInLandscape = false;
+ private FFTAverage[] mFFTAverage;
+ private float[] mFFTPoints;
+ private byte rfk, ifk;
+ private int dbValue;
+ private float magnitude;
+ private int mDivisions;
+ private int mDbFuzzFactor;
+ private int mPathEffect1;
+ private int mPathEffect2;
+ private Bitmap mCanvasBitmap;
+ private Canvas mCanvas;
+ private Matrix mMatrix;
+ private int mWidth;
+ private int mHeight;
+ private boolean mSmoothingEnabled;
+
+ public FadingBlockRenderer(Context context, Handler handler, PulseView view,
+ PulseControllerImpl controller, ColorController colorController) {
+ super(context, handler, view, colorController);
+ instance = this;
+ mPaint = new Paint();
+ mFadePaint = new Paint();
+ mFadePaint.setColor(Color.argb(200, 255, 255, 255));
+ mFadePaint.setXfermode(new PorterDuffXfermode(Mode.MULTIPLY));
+ mMatrix = new Matrix();
+ final Resources res = mContext.getResources();
+
+ int emptyBlock = 1;
+ int customDimen = 14;
+ int numDivision = 16;
+ int fudgeFactor = 5;
+ int filledBlock = 4;
+
+ mPathEffect1 = getLimitedDimenValue(filledBlock, 4, 8, res);
+ mPathEffect2 = getLimitedDimenValue(emptyBlock, 0, 4, res);
+ mPaint.setPathEffect(null);
+ mPaint.setPathEffect(new android.graphics.DashPathEffect(new float[] {
+ mPathEffect1,
+ mPathEffect2
+ }, 0));
+ mPaint.setStrokeWidth(getLimitedDimenValue(customDimen, 1, 30, res));
+ mDivisions = validateDivision(numDivision);
+ mDbFuzzFactor = Math.max(2, Math.min(6, fudgeFactor));
+
+ mSmoothingEnabled = false;
+ mPaint.setAntiAlias(true);
+ onSizeChanged(0, 0, 0, 0);
+ }
+
+ public static boolean hasInstance() {
+ return (instance != null);
+ }
+
+ public static FadingBlockRenderer getInstance() {
+ return instance;
+ }
+
+ @Override
+ public void onStreamAnalyzed(boolean isValid) {
+ mIsValidStream = isValid;
+ if (isValid) {
+ onSizeChanged(0, 0, 0, 0);
+ mColorController.startLavaLamp();
+ }
+ }
+
+ @Override
+ public void onFFTUpdate(byte[] bytes) {
+ int fudgeFactor = mKeyguardShowing ? mDbFuzzFactor * 4 : mDbFuzzFactor;
+ mFFTBytes = bytes;
+ if (mFFTBytes != null) {
+ if (mFFTPoints == null || mFFTPoints.length < mFFTBytes.length * 4) {
+ mFFTPoints = new float[mFFTBytes.length * 4];
+ }
+ int divisionLength = mFFTBytes.length / mDivisions;
+ if (mSmoothingEnabled) {
+ if (mFFTAverage == null || mFFTAverage.length != divisionLength) {
+ setupFFTAverage(divisionLength);
+ }
+ } else {
+ mFFTAverage = null;
+ }
+ for (int i = 0; i < divisionLength; i++) {
+ if (mVertical) {
+ mFFTPoints[i * 4 + 1] = i * 4 * mDivisions;
+ mFFTPoints[i * 4 + 3] = i * 4 * mDivisions;
+ } else {
+ mFFTPoints[i * 4] = i * 4 * mDivisions;
+ mFFTPoints[i * 4 + 2] = i * 4 * mDivisions;
+ }
+ rfk = mFFTBytes[mDivisions * i];
+ ifk = mFFTBytes[mDivisions * i + 1];
+ magnitude = (rfk * rfk + ifk * ifk);
+ dbValue = magnitude > 0 ? (int) (10 * Math.log10(magnitude)) : 0;
+ if (mSmoothingEnabled) {
+ dbValue = mFFTAverage[i].average(dbValue);
+ }
+ if (mVertical) {
+ mFFTPoints[i * 4] = mLeftInLandscape ? 0 : mWidth;
+ mFFTPoints[i * 4 + 2] = mLeftInLandscape ? (dbValue * fudgeFactor + DBFUZZ)
+ : (mWidth - (dbValue * fudgeFactor + DBFUZZ));
+ } else {
+ mFFTPoints[i * 4 + 1] = mHeight;
+ mFFTPoints[i * 4 + 3] = mHeight - (dbValue * fudgeFactor + DBFUZZ);
+ }
+ }
+ }
+ if (mCanvas != null) {
+ mCanvas.drawLines(mFFTPoints, mPaint);
+ mCanvas.drawPaint(mFadePaint);
+ }
+ postInvalidate();
+ }
+
+ private void setupFFTAverage(int size) {
+ mFFTAverage = new FFTAverage[size];
+ for (int i = 0; i < size; i++) {
+ mFFTAverage[i] = new FFTAverage();
+ }
+ }
+
+ @Override
+ public void onSizeChanged(int w, int h, int oldw, int oldh) {
+ if (mView.getWidth() > 0 && mView.getHeight() > 0) {
+ mWidth = mView.getWidth();
+ mHeight = mView.getHeight();
+ mVertical = false;
+ mCanvasBitmap = Bitmap.createBitmap(mWidth, mHeight, Config.ARGB_8888);
+ mCanvas = new Canvas(mCanvasBitmap);
+ }
+ }
+
+ @Override
+ public void setLeftInLandscape(boolean leftInLandscape) {
+ if (mLeftInLandscape != leftInLandscape) {
+ mLeftInLandscape = leftInLandscape;
+ onSizeChanged(0, 0, 0, 0);
+ }
+ }
+
+ @Override
+ public void destroy() {
+ mColorController.stopLavaLamp();
+ mCanvasBitmap = null;
+ }
+
+ @Override
+ public void onVisualizerLinkChanged(boolean linked) {
+ if (!linked) {
+ mColorController.stopLavaLamp();
+ }
+ }
+
+ @Override
+ public void onUpdateColor(int color) {
+ mPaint.setColor(color);
+ }
+
+ @Override
+ public void draw(Canvas canvas) {
+ canvas.drawBitmap(mCanvasBitmap, mMatrix, null);
+ }
+
+ /*private int applyPaintAlphaToColor(int color) {
+ int opaqueColor = Color.rgb(Color.red(color),
+ Color.green(color), Color.blue(color));
+ return (DEF_PAINT_ALPHA << 24) | (opaqueColor & 0x00ffffff);
+ }*/
+
+
+ public void updateSettings(int emptyBlock,
+ int customDimen,
+ int numDivision,
+ int fudgeFactor,
+ int filledBlock) {
+ final Resources res = mContext.getResources();
+ mPathEffect1 = getLimitedDimenValue(filledBlock, 4, 8, res);
+ mPathEffect2 = getLimitedDimenValue(emptyBlock, 0, 4, res);
+ mPaint.setPathEffect(null);
+ mPaint.setPathEffect(new android.graphics.DashPathEffect(new float[] {
+ mPathEffect1,
+ mPathEffect2
+ }, 0));
+ mPaint.setStrokeWidth(getLimitedDimenValue(customDimen, 1, 30, res));
+ mDivisions = validateDivision(numDivision);
+ mDbFuzzFactor = Math.max(2, Math.min(6, fudgeFactor));
+ }
+
+ public void updateSmoothingEnabled(boolean enabled) {
+ mSmoothingEnabled = enabled;
+ }
+
+
+ private static int getLimitedDimenValue(int val, int min, int max, Resources res) {
+ return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
+ Math.max(min, Math.min(max, val)), res.getDisplayMetrics());
+ }
+
+ private static int validateDivision(int val) {
+ // if a bad value was passed from settings (not divisible by 2)
+ // reset to default value of 16. Validate range.
+ if (val % 2 != 0) {
+ val = 16;
+ }
+ return Math.max(2, Math.min(44, val));
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/PulseControllerImpl.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/PulseControllerImpl.java
new file mode 100644
index 000000000..1d1bfb453
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/PulseControllerImpl.java
@@ -0,0 +1,563 @@
+package it.dhd.oxygencustomizer.xposed.views.pulse;
+
+import android.annotation.SuppressLint;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.Canvas;
+import android.media.AudioManager;
+import android.media.session.PlaybackState;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.PowerManager;
+import android.util.Log;
+import android.view.View;
+import android.widget.FrameLayout;
+
+import java.util.concurrent.Executor;
+
+import de.robv.android.xposed.XposedBridge;
+import it.dhd.oxygencustomizer.xposed.utils.SystemUtils;
+import it.dhd.oxygencustomizer.xposed.views.PulseView;
+import it.dhd.oxygencustomizer.xposed.views.VisualizerView;
+
+public class PulseControllerImpl {
+
+ public static final boolean DEBUG = true;
+ @SuppressLint("StaticFieldLeak")
+ private static PulseControllerImpl instance = null;
+ private final String STREAM_MUTE_CHANGED_ACTION = "android.media.STREAM_MUTE_CHANGED_ACTION";
+ private final String VOLUME_CHANGED_ACTION = "android.media.VOLUME_CHANGED_ACTION";
+ private final String EXTRA_VOLUME_STREAM_TYPE = "android.media.EXTRA_VOLUME_STREAM_TYPE";
+
+ private static final String TAG = PulseControllerImpl.class.getSimpleName();
+ private static final int RENDER_STYLE_LEGACY = 0;
+ private static final int RENDER_STYLE_CM = 1;
+
+ private final Context mContext;
+ private static AudioManager mAudioManager;
+ private static Renderer mRenderer;
+ private static VisualizerStreamHandler mStreamHandler;
+ private static ColorController mColorController;
+ private static PulseView mPulseView;
+ private int mPulseStyle;
+ private final PowerManager mPowerManager;
+
+ // Pulse state
+ private boolean mLinked;
+ private boolean mPowerSaveModeEnabled;
+ private boolean mScreenOn = true; // MUST initialize as true
+ private boolean mMusicStreamMuted;
+ private boolean mLeftInLandscape = false;
+ private boolean mScreenPinningEnabled;
+ private boolean mIsMediaPlaying;
+ private boolean mAttached;
+
+ private boolean mNavPulseEnabled;
+ private boolean mLsPulseEnabled;
+ private boolean mAmbPulseEnabled;
+ private boolean mPulseEnabled;
+
+ private boolean mKeyguardShowing;
+ private boolean mDozing;
+ private boolean mKeyguardGoingAway;
+ private FrameLayout mNavBar = null;
+ private FrameLayout mAodRootLayout = null;
+ private FrameLayout mNotificationShadeView;
+ private FrameLayout mKeyguardLayout = null;
+ private Executor mBgHandler = command -> new Handler(Looper.getMainLooper()).post(command);
+
+ private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ log("onReceive() " + action);
+ if (!mPulseEnabled) return;
+ if (Intent.ACTION_SCREEN_OFF.equals(action)) {
+ mScreenOn = false;
+ doLinkage();
+ } else if (Intent.ACTION_SCREEN_ON.equals(action)) {
+ mScreenOn = true;
+ doLinkage();
+ } else if (PowerManager.ACTION_POWER_SAVE_MODE_CHANGED.equals(intent.getAction())) {
+ mPowerSaveModeEnabled = mPowerManager.isPowerSaveMode();
+ doLinkage();
+ } else if (STREAM_MUTE_CHANGED_ACTION.equals(intent.getAction())
+ || (VOLUME_CHANGED_ACTION.equals(intent.getAction()))) {
+ log("STREAM_MUTE_CHANGED_ACTION or VOLUME_CHANGED_ACTION" + intent.getAction() + " streamType: " + intent.getIntExtra(EXTRA_VOLUME_STREAM_TYPE, -1));
+ int streamType = intent.getIntExtra(EXTRA_VOLUME_STREAM_TYPE, -1);
+ if (streamType == AudioManager.STREAM_MUSIC) {
+ boolean muted = isMusicMuted(streamType);
+ if (mMusicStreamMuted != muted) {
+ mMusicStreamMuted = muted;
+ doLinkage();
+ }
+ }
+ }
+ }
+ };
+
+ private final VisualizerStreamHandler.Listener mStreamListener = new VisualizerStreamHandler.Listener() {
+ @Override
+ public void onStreamAnalyzed(boolean isValid) {
+ if (mRenderer != null) {
+ mRenderer.onStreamAnalyzed(isValid);
+ }
+ if (isValid) {
+ turnOnPulse();
+ } else {
+ doSilentUnlinkVisualizer();
+ }
+ }
+
+ @Override
+ public void onFFTUpdate(byte[] bytes) {
+ if (mRenderer != null && bytes != null) {
+ mRenderer.onFFTUpdate(bytes);
+ }
+ }
+
+ @Override
+ public void onWaveFormUpdate(byte[] bytes) {
+ if (mRenderer != null && bytes != null) {
+ mRenderer.onWaveFormUpdate(bytes);
+ }
+ }
+ };
+
+ public static PulseControllerImpl getInstance(Context context) {
+ if (instance != null) return instance;
+ return new PulseControllerImpl(context);
+ }
+
+ public static PulseControllerImpl getInstance() {
+ return instance;
+ }
+
+ public void setPulseEnabled(boolean enabled) {
+ mPulseEnabled = enabled;
+ updatePulseVisibility();
+ }
+
+ public void setNavbarPulseEnabled(boolean enabled) {
+ mNavPulseEnabled = enabled;
+ updatePulseVisibility();
+ }
+
+ public void setLockscreenPulseEnabled(boolean enabled) {
+ mLsPulseEnabled = enabled;
+ updatePulseVisibility();
+ }
+
+ public void setAmbientPulseEnabled(boolean enabled) {
+ mAmbPulseEnabled = enabled;
+ updatePulseVisibility();
+ }
+
+ public void setPulseRenderStyle(int style) {
+ log("setPulseRenderStyle() " + style);
+ mPulseStyle = style;
+ loadRenderer();
+ }
+
+ public void notifyKeyguardGoingAway() {
+ if (mLsPulseEnabled) {
+ mKeyguardGoingAway = true;
+ updatePulseVisibility();
+ mKeyguardGoingAway = false;
+ }
+ }
+
+ private void updatePulseVisibility() {
+ log("updatePulseVisibility() " + mKeyguardShowing + " " + mDozing + " " + mPulseEnabled);
+
+ VisualizerView vv = VisualizerView.getInstance();
+ boolean allowAmbPulse = vv != null && vv.isAttached()
+ && mAmbPulseEnabled && mKeyguardShowing && mDozing;
+ boolean allowLsPulse = vv != null && vv.isAttached()
+ && mLsPulseEnabled && mKeyguardShowing && !mDozing;
+ boolean allowNavPulse = vv != null && vv.isAttached()
+ && mNavPulseEnabled && !mKeyguardShowing && !mDozing;
+
+ /*if (mKeyguardGoingAway) {
+ detachPulseFrom(vv, allowNavPulse /*keep linked*//*);
+ } else if (allowNavPulse) {
+ detachPulseFrom(vv, allowNavPulse /*keep linked*//*);
+ attachPulseTo(mNavBar);
+ } else if (allowLsPulse) {
+ detachPulseFrom(mNavBar, allowLsPulse /*keep linked*//*);
+ if (mAmbPulseEnabled) detachPulseFrom(mAodRootLayout, allowLsPulse /*keep linked*//*);
+ attachPulseTo(vv);
+ } else if (allowAmbPulse) {
+ detachPulseFrom(mNavBar, allowAmbPulse /*keep linked*//*);
+ if (mLsPulseEnabled) detachPulseFrom(vv, allowAmbPulse /*keep linked*//*);
+ attachPulseTo(mAodRootLayout);
+ } else {
+ detachPulseFrom(mNavBar, false /*keep linked*//*);
+ detachPulseFrom(mAodRootLayout, false /*keep linked*//*);
+ detachPulseFrom(mKeyguardLayout, false /*keep linked*//*);
+ detachPulseFrom(vv, false /*keep linked*//*);
+ }*/
+
+ if (mKeyguardGoingAway) {
+ detachPulseFrom(vv, allowNavPulse /*keep linked*/);
+ } else if (allowNavPulse) {
+ detachPulseFrom(vv, allowNavPulse /*keep linked*/);
+ attachPulseTo(mNavBar);
+ } else if (allowLsPulse) {
+ detachPulseFrom(mNavBar, allowNavPulse || allowLsPulse || allowAmbPulse /*keep linked*/);
+ if (mAmbPulseEnabled) detachPulseFrom(mAodRootLayout, allowNavPulse || allowAmbPulse /*keep linked*/);
+ attachPulseTo(vv);
+ } else if (allowAmbPulse) {
+ detachPulseFrom(mNavBar, allowLsPulse || allowNavPulse /*keep linked*/);
+ if (mLsPulseEnabled) detachPulseFrom(vv, allowLsPulse || allowNavPulse /*keep linked*/);
+ attachPulseTo(mAodRootLayout);
+ } else {
+ detachPulseFrom(mNavBar, false /*keep linked*/);
+ detachPulseFrom(mAodRootLayout, false /*keep linked*/);
+ //detachPulseFrom(mKeyguardLayout, false /*keep linked*/);
+ detachPulseFrom(vv, false /*keep linked*/);
+ }
+ }
+
+ public void setDozing(boolean dozing) {
+ if (mDozing != dozing) {
+ mDozing = dozing;
+ if (mPulseEnabled)
+ updatePulseVisibility();
+ }
+ }
+
+ public void setKeyguardShowing(boolean showing) {
+ log("setKeyguardShowing() " + showing + " " + mKeyguardShowing);
+ if (showing != mKeyguardShowing) {
+ mKeyguardShowing = showing;
+ if (mRenderer != null) {
+ mRenderer.setKeyguardShowing(showing);
+ }
+ if (mPulseEnabled)
+ updatePulseVisibility();
+ }
+ }
+
+ private final Handler mHandler = new Handler();
+
+ public PulseControllerImpl(
+ Context context) {
+ instance = this;
+ mContext = context;
+ mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+ mMusicStreamMuted = isMusicMuted(AudioManager.STREAM_MUSIC);
+ mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+ mPowerSaveModeEnabled = mPowerManager.isPowerSaveMode();
+ mStreamHandler = new VisualizerStreamHandler(mContext, this, mStreamListener, mBgHandler);
+ mPulseView = new PulseView(context, instance);
+ mColorController = new ColorController(mContext);
+ loadRenderer();
+ IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
+ filter.addAction(Intent.ACTION_SCREEN_ON);
+ filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
+ filter.addAction(STREAM_MUTE_CHANGED_ACTION);
+ filter.addAction(VOLUME_CHANGED_ACTION);
+ context.registerReceiver(mBroadcastReceiver, filter, Context.RECEIVER_EXPORTED);
+ log("PulseControllerImpl() done");
+ }
+
+ public void setNavbar(FrameLayout navBar) {
+ mNavBar = navBar;
+ }
+
+ public void setAodRootLayout(FrameLayout aodRootLayout) {
+ mAodRootLayout = aodRootLayout;
+ }
+
+ public void setStatusbar(FrameLayout notificationShadeView) {
+ mNotificationShadeView = notificationShadeView;
+ }
+
+ public void setKeyguardLayout(FrameLayout keyguardLayout) {
+ mKeyguardLayout = keyguardLayout;
+ }
+
+ public static boolean hasInstance() {
+ return instance != null;
+ }
+
+ private void attachPulseTo(FrameLayout parent) {
+ log("attachPulseTo() " + parent + " " + mAttached);
+ if (parent == null) return;
+ View v = parent.findViewWithTag(PulseView.TAG);
+ if (v == null) {
+ parent.addView(mPulseView);
+ mAttached = true;
+ doLinkage();
+ }
+ }
+
+ private void detachPulseFrom(FrameLayout parent, boolean keepLinked) {
+ if (parent == null) return;
+ View v = parent.findViewWithTag(PulseView.TAG);
+ if (v != null) {
+ parent.removeView(mPulseView);
+ mAttached = keepLinked;
+ log("detachPulseFrom() ");
+ doLinkage();
+ }
+ }
+
+ private void loadRenderer() {
+ log("loadRenderer() " + mPulseStyle);
+ final boolean isRendering = shouldDrawPulse();
+ if (isRendering) {
+ mStreamHandler.pause();
+ }
+ if (mRenderer != null) {
+ mRenderer.destroy();
+ mRenderer = null;
+ }
+ mRenderer = getRenderer();
+ mColorController.setRenderer(mRenderer);
+ mRenderer.setLeftInLandscape(mLeftInLandscape);
+ if (isRendering) {
+ mRenderer.onStreamAnalyzed(true);
+ mStreamHandler.resume();
+ }
+ }
+
+ /*@Override
+ public void screenPinningStateChanged(boolean enabled) {
+ mScreenPinningEnabled = enabled;
+ doLinkage();
+ }
+
+ @Override
+ public void leftInLandscapeChanged(boolean isLeft) {
+ if (mLeftInLandscape != isLeft) {
+ mLeftInLandscape = isLeft;
+ if (mRenderer != null) {
+ mRenderer.setLeftInLandscape(isLeft);
+ }
+ }
+ }*/
+
+ /**
+ * Current rendering state: There is a visualizer link and the fft stream is validated
+ *
+ * @return true if bar elements should be hidden, false if not
+ */
+ public boolean shouldDrawPulse() {
+ return mLinked && mStreamHandler.isValidStream() && mRenderer != null;
+ }
+
+ public void onDraw(Canvas canvas) {
+ if (shouldDrawPulse()) {
+ mRenderer.draw(canvas);
+ }
+ }
+
+ private void turnOnPulse() {
+ if (shouldDrawPulse()) {
+ mStreamHandler.resume(); // let bytes hit visualizer
+ }
+ }
+
+ public void onSizeChanged(int w, int h, int oldw, int oldh) {
+ if (mRenderer != null) {
+ mRenderer.onSizeChanged(w, h, oldw, oldh);
+ }
+ }
+
+ private Renderer getRenderer() {
+ if (mPulseStyle == RENDER_STYLE_CM) {
+ return new SolidLineRenderer(mContext, mHandler, mPulseView, instance, mColorController);
+ } else {
+ return new FadingBlockRenderer(mContext, mHandler, mPulseView, instance, mColorController);
+ }
+ }
+
+ private boolean isMusicMuted(int streamType) {
+ return streamType == AudioManager.STREAM_MUSIC &&
+ (mAudioManager.isStreamMute(streamType) ||
+ mAudioManager.getStreamVolume(streamType) == 0);
+ }
+
+ private static void setVisualizerLocked(boolean doLock) {
+ /*try {
+ IBinder b = ServiceManager.getService(Context.AUDIO_SERVICE);
+ IAudioService audioService = IAudioService.Stub.asInterface(b);
+ audioService.setVisualizerLocked(doLock);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error setting visualizer lock");
+ }*/
+ }
+
+ /**
+ * if any of these conditions are met, we unlink regardless of any other states
+ *
+ * @return true if unlink is required, false if unlinking is not mandatory
+ */
+ private boolean isUnlinkRequired() {
+ return (!mScreenOn && !mAmbPulseEnabled)
+ || mPowerSaveModeEnabled
+ || mMusicStreamMuted
+ || mScreenPinningEnabled
+ || !mAttached;
+ }
+
+ /**
+ * All of these conditions must be met to allow a visualizer link
+ *
+ * @return true if all conditions are met to allow link, false if and conditions are not met
+ */
+ private boolean isAbleToLink() {
+ return (mScreenOn || mAmbPulseEnabled)
+ && mIsMediaPlaying
+ && !mPowerSaveModeEnabled
+ && !mMusicStreamMuted
+ && !mScreenPinningEnabled
+ && mAttached;
+ }
+
+ private boolean canActuallyLink() {
+ return (mLsPulseEnabled) ||
+ (mNavPulseEnabled && mNavBar != null) ||
+ (mAmbPulseEnabled && mAodRootLayout != null);
+ }
+
+ private void doUnlinkVisualizer() {
+ if (mStreamHandler != null) {
+ if (mLinked) {
+ mStreamHandler.unlink();
+ setVisualizerLocked(false);
+ mLinked = false;
+ if (mRenderer != null) {
+ mRenderer.onVisualizerLinkChanged(false);
+ }
+ mPulseView.postInvalidate();
+ }
+ }
+ }
+
+ /**
+ * Incoming event in which we need to
+ * toggle our link state. Use runnable to
+ * handle multiple events at same time.
+ */
+ private void doLinkage() {
+ log("doLinkage() ");
+ if (isUnlinkRequired()) {
+ if (mLinked) {
+ // explicitly unlink
+ doUnlinkVisualizer();
+ }
+ } else {
+ if (isAbleToLink() && canActuallyLink()) {
+ doLinkVisualizer();
+ } else if (mLinked) {
+ doUnlinkVisualizer();
+ }
+ }
+ }
+
+ /**
+ * Invalid media event not providing
+ * a data stream to visualizer. Unlink
+ * without calling into view. Like it
+ * never happened
+ */
+ private void doSilentUnlinkVisualizer() {
+ if (mStreamHandler != null) {
+ if (mLinked) {
+ mStreamHandler.unlink();
+ setVisualizerLocked(false);
+ mLinked = false;
+ }
+ }
+ }
+
+ /**
+ * Link to visualizer after conditions
+ * are confirmed
+ */
+ private void doLinkVisualizer() {
+ log("doLinkVisualizer() " + mLinked);
+ if (mStreamHandler != null) {
+ if (!mLinked) {
+ setVisualizerLocked(true);
+ mStreamHandler.link();
+ mLinked = true;
+ if (mRenderer != null) {
+ mRenderer.onVisualizerLinkChanged(true);
+ }
+ }
+ }
+ log("doLinkVisualizer() done " + mLinked);
+ }
+
+ /*@Override
+ public void onPrimaryMetadataOrStateChanged(MediaMetadata metadata, @PlaybackState.State int state) {
+ boolean isPlaying = state == PlaybackState.STATE_PLAYING;
+ if (mIsMediaPlaying != isPlaying) {
+ mIsMediaPlaying = isPlaying;
+ doLinkage();
+ }
+ }
+
+ @Override
+ public void setMediaNotificationColor(int color) {
+ mColorController.setMediaNotificationColor(color);
+ }*/
+
+ @Override
+ public String toString() {
+ return TAG + " " + getState();
+ }
+
+ private String getState() {
+ return "canActuallyLink() = " + canActuallyLink() + " "
+ + "isAbleToLink() = " + isAbleToLink() + " "
+ + "shouldDrawPulse() = " + shouldDrawPulse() + " "
+ + "mScreenOn = " + mScreenOn + " "
+ + "mIsMediaPlaying = " + mIsMediaPlaying + " "
+ + "mLinked = " + mLinked + " "
+ + "mPowerSaveModeEnabled = " + mPowerSaveModeEnabled + " "
+ + "mMusicStreamMuted = " + mMusicStreamMuted + " "
+ + "mScreenPinningEnabled = " + mScreenPinningEnabled + " "
+ + "mAttached = " + mAttached + " "
+ + "mStreamHandler.isValidStream() = " + mStreamHandler.isValidStream() + " "
+ + "mKeyguardShowing = " + mKeyguardShowing + " "
+ + "mDozing = " + mDozing + " ";
+ }
+
+ private void log(String msg) {
+ if (DEBUG) {
+ XposedBridge.log(TAG + " " + msg + " " + getState());
+ Log.i(TAG, msg + " " + getState());
+ }
+ }
+
+ public void setScreenPinning(boolean arg) {
+ log("setScreenPinning() " + arg);
+ mScreenPinningEnabled = arg;
+ doLinkage();
+ }
+
+ public void onPrimaryMetadataOrStateChanged(int state) {
+ boolean isMusicActive = false;
+ if (SystemUtils.AudioManager() != null) {
+ isMusicActive = SystemUtils.AudioManager().isMusicActive();
+ }
+ boolean isPlaying = (isMusicActive || state == PlaybackState.STATE_PLAYING);
+ if (mIsMediaPlaying != isPlaying) {
+ mIsMediaPlaying = isPlaying;
+ doLinkage();
+ }
+ }
+
+ public void setColors(int mPulseColorMode, int mPulseColor, int mPulseLavaSpeed) {
+ mColorController.setColorType(mPulseColorMode);
+ mColorController.setCustomColor(mPulseColor);
+ mColorController.setLavaLampSpeed(mPulseLavaSpeed);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/Renderer.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/Renderer.java
new file mode 100644
index 000000000..253aca28f
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/Renderer.java
@@ -0,0 +1,92 @@
+package it.dhd.oxygencustomizer.xposed.views.pulse;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ * Copyright (C) 2016-2022 crDroid Android Project
+ *
+ * @author: Randall Rushing
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Base class of things that render eye candy
+ *
+ */
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.os.Handler;
+import android.view.WindowManager;
+
+import it.dhd.oxygencustomizer.xposed.views.PulseView;
+
+public abstract class Renderer implements VisualizerStreamHandler.Listener {
+ protected Context mContext;
+ protected Handler mHandler;
+ protected PulseView mView;
+ protected ColorController mColorController;
+ protected boolean mIsValidStream;
+
+ private long mPulseFPS;
+ private long mPulseFPSToMs;
+ private long mCurrentTime;
+ private long mRenderCounter;
+ private long mCurrentCounter;
+
+ protected boolean mKeyguardShowing;
+
+ public Renderer(Context context, Handler handler, PulseView view, ColorController colorController) {
+ mContext = context;
+ mHandler = handler;
+ mView = view;
+ mColorController = colorController;
+ WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
+ mRenderCounter = System.currentTimeMillis();
+ mPulseFPS = (int) wm.getDefaultDisplay().getRefreshRate();
+ mPulseFPSToMs = 1000 / mPulseFPS;
+ }
+
+ protected final void postInvalidate() {
+ mCurrentTime = System.currentTimeMillis();
+ mCurrentCounter = mCurrentTime - mRenderCounter;
+ if (mCurrentCounter >= mPulseFPSToMs) {
+ mRenderCounter = mCurrentTime;
+ mView.postInvalidate();
+ }
+ }
+
+ public abstract void draw(Canvas canvas);
+
+ @Override
+ public void onWaveFormUpdate(byte[] bytes) {}
+
+ @Override
+ public void onFFTUpdate(byte[] fft) {}
+
+ public void onVisualizerLinkChanged(boolean linked) {}
+
+ public void destroy() {}
+
+ public void setLeftInLandscape(boolean leftInLandscape) {}
+
+ public void onSizeChanged(int w, int h, int oldw, int oldh) {}
+
+ public void onUpdateColor(int color) {}
+
+ public boolean isValidStream() { return mIsValidStream; }
+
+ public void setKeyguardShowing(boolean showing) {
+ mKeyguardShowing = showing;
+ onSizeChanged(0, 0, 0, 0);
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/SolidLineRenderer.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/SolidLineRenderer.java
new file mode 100644
index 000000000..7aa589565
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/SolidLineRenderer.java
@@ -0,0 +1,276 @@
+package it.dhd.oxygencustomizer.xposed.views.pulse;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ * Copyright (C) 2016-2022 crDroid Android Project
+ * Copyright (C) 2015 The CyanogenMod Project
+ *
+ * @author: Randall Rushing
+ *
+ * Contributions from The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+import android.animation.ValueAnimator;
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.os.Handler;
+
+import androidx.core.graphics.ColorUtils;
+
+import it.dhd.oxygencustomizer.xposed.views.PulseView;
+
+public class SolidLineRenderer extends Renderer {
+
+ @SuppressLint("StaticFieldLeak")
+ private static SolidLineRenderer instance = null;
+ private Paint mPaint;
+ private int mUnitsOpacity;
+ private int mColor = Color.WHITE;
+ private ValueAnimator[] mValueAnimators;
+ private FFTAverage[] mFFTAverage;
+ private float[] mFFTPoints;
+
+ private byte rfk, ifk;
+ private int dbValue;
+ private float magnitude;
+ private int mDbFuzzFactor;
+ private boolean mVertical;
+ private boolean mLeftInLandscape = false;
+ private int mWidth, mHeight, mUnits;
+
+ private boolean mSmoothingEnabled;
+ private boolean mRounded;
+
+ public SolidLineRenderer(Context context, Handler handler, PulseView view,
+ PulseControllerImpl controller, ColorController colorController) {
+ super(context, handler, view, colorController);
+ instance = this;
+ mPaint = new Paint();
+ mPaint.setAntiAlias(true);
+
+ mUnits = 32;
+ mDbFuzzFactor = 5;
+ mSmoothingEnabled = false;
+ mRounded = false;
+
+ mFFTPoints = new float[mUnits * 4];
+ onSizeChanged(0, 0, 0, 0);
+
+ mFFTAverage = null;
+
+ mUnitsOpacity= 200;
+
+ mPaint.setColor(ColorUtils.setAlphaComponent(mColor, mUnitsOpacity));
+ loadValueAnimators();
+ }
+
+ public static boolean hasInstance() {
+ return (instance != null);
+ }
+
+ public static SolidLineRenderer getInstance() {
+ return instance;
+ }
+
+ @Override
+ public void setLeftInLandscape(boolean leftInLandscape) {
+ if (mLeftInLandscape != leftInLandscape) {
+ mLeftInLandscape = leftInLandscape;
+ onSizeChanged(0, 0, 0, 0);
+ }
+ }
+
+ private void loadValueAnimators() {
+ if (mValueAnimators != null) {
+ stopAnimation(mValueAnimators.length);
+ }
+ mValueAnimators = new ValueAnimator[mUnits];
+ final boolean isVertical = mVertical;
+ for (int i = 0; i < mUnits; i++) {
+ final int j;
+ if (isVertical) {
+ j = i * 4;
+ } else {
+ j = i * 4 + 1;
+ }
+ mValueAnimators[i] = new ValueAnimator();
+ mValueAnimators[i].setDuration(128);
+ mValueAnimators[i].addUpdateListener(animation -> {
+ mFFTPoints[j] = (float) animation.getAnimatedValue();
+ postInvalidate();
+ });
+ }
+ }
+
+ private void stopAnimation(int index) {
+ if (mValueAnimators == null) return;
+ for (int i = 0; i < index; i++) {
+ // prevent onAnimationUpdate existing listeners (by stopping them) to call
+ // a wrong mFFTPoints index after mUnits gets updated by the user
+ mValueAnimators[i].removeAllUpdateListeners();
+ mValueAnimators[i].cancel();
+ }
+ }
+
+ private void setPortraitPoints() {
+ float units = (float) mUnits;
+ float barUnit = mWidth / units;
+ float barWidth = barUnit * 8f / 9f;
+ barUnit = barWidth + (barUnit - barWidth) * units / (units - 1);
+ mPaint.setStrokeWidth(barWidth);
+ mPaint.setStrokeCap(mRounded ? Paint.Cap.ROUND : Paint.Cap.BUTT);
+ for (int i = 0; i < mUnits; i++) {
+ mFFTPoints[i * 4] = mFFTPoints[i * 4 + 2] = i * barUnit + (barWidth / 2);
+ mFFTPoints[i * 4 + 1] = mHeight;
+ mFFTPoints[i * 4 + 3] = mHeight;
+ }
+ }
+
+ private void setVerticalPoints() {
+ float units = (float) mUnits;
+ float barUnit = mHeight / units;
+ float barHeight = barUnit * 8f / 9f;
+ barUnit = barHeight + (barUnit - barHeight) * units / (units - 1);
+ mPaint.setStrokeWidth(barHeight);
+ mPaint.setStrokeCap(mRounded ? Paint.Cap.ROUND : Paint.Cap.BUTT);
+ for (int i = 0; i < mUnits; i++) {
+ mFFTPoints[i * 4 + 1] = mFFTPoints[i * 4 + 3] = i * barUnit + (barHeight / 2);
+ mFFTPoints[i * 4] = mLeftInLandscape ? 0 : mWidth;
+ mFFTPoints[i * 4 + 2] = mLeftInLandscape ? 0 : mWidth;
+ }
+ }
+
+ @Override
+ public void onSizeChanged(int w, int h, int oldw, int oldh) {
+ if (mView.getWidth() > 0 && mView.getHeight() > 0) {
+ mWidth = mView.getWidth();
+ mHeight = mView.getHeight();
+ mVertical = false;
+ loadValueAnimators();
+ if (mVertical) {
+ setVerticalPoints();
+ } else {
+ setPortraitPoints();
+ }
+ }
+ }
+
+ @Override
+ public void onStreamAnalyzed(boolean isValid) {
+ mIsValidStream = isValid;
+ if (isValid) {
+ onSizeChanged(0, 0, 0, 0);
+ mColorController.startLavaLamp();
+ }
+ }
+
+ @Override
+ public void onFFTUpdate(byte[] fft) {
+ int fudgeFactor = mKeyguardShowing ? mDbFuzzFactor * 4 : mDbFuzzFactor;
+ for (int i = 0; i < mUnits; i++) {
+ if (mValueAnimators[i] == null) continue;
+ mValueAnimators[i].cancel();
+ rfk = fft[i * 2 + 2];
+ ifk = fft[i * 2 + 3];
+ magnitude = rfk * rfk + ifk * ifk;
+ dbValue = magnitude > 0 ? (int) (10 * Math.log10(magnitude)) : 0;
+ if (mSmoothingEnabled) {
+ if (mFFTAverage == null) {
+ setupFFTAverage();
+ }
+ dbValue = mFFTAverage[i].average(dbValue);
+ }
+ if (mVertical) {
+ if (mLeftInLandscape) {
+ mValueAnimators[i].setFloatValues(mFFTPoints[i * 4],
+ dbValue * fudgeFactor);
+ } else {
+ mValueAnimators[i].setFloatValues(mFFTPoints[i * 4],
+ mFFTPoints[2] - (dbValue * fudgeFactor));
+ }
+ } else {
+ mValueAnimators[i].setFloatValues(mFFTPoints[i * 4 + 1],
+ mFFTPoints[3] - (dbValue * fudgeFactor));
+ }
+ mValueAnimators[i].start();
+ }
+ }
+
+ @Override
+ public void draw(Canvas canvas) {
+ canvas.drawLines(mFFTPoints, mPaint);
+ }
+
+ @Override
+ public void destroy() {
+ mColorController.stopLavaLamp();
+ }
+
+ @Override
+ public void onVisualizerLinkChanged(boolean linked) {
+ if (!linked) {
+ mColorController.stopLavaLamp();
+ }
+ }
+
+ @Override
+ public void onUpdateColor(int color) {
+ mColor = color;
+ mPaint.setColor(ColorUtils.setAlphaComponent(mColor, mUnitsOpacity));
+ }
+
+ public void updateSettings(int dbFuzzFactor,
+ boolean smoothingEnabled, boolean rounded, int units, int unitsOpacity) {
+
+ mDbFuzzFactor = dbFuzzFactor;
+ mSmoothingEnabled = smoothingEnabled;
+ mRounded = rounded;
+
+ if (units != mUnits) {
+ stopAnimation(mUnits);
+ mUnits = units;
+ mFFTPoints = new float[mUnits * 4];
+ if (mSmoothingEnabled) {
+ setupFFTAverage();
+ }
+ onSizeChanged(0, 0, 0, 0);
+ }
+
+ if (mSmoothingEnabled) {
+ if (mFFTAverage == null) {
+ setupFFTAverage();
+ }
+ } else {
+ mFFTAverage = null;
+ }
+
+ mUnitsOpacity= unitsOpacity;
+
+ mPaint.setColor(ColorUtils.setAlphaComponent(mColor, mUnitsOpacity));
+
+ }
+
+ private void setupFFTAverage() {
+ mFFTAverage = new FFTAverage[mUnits];
+ for (int i = 0; i < mUnits; i++) {
+ mFFTAverage[i] = new FFTAverage();
+ }
+ }
+}
diff --git a/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/VisualizerStreamHandler.java b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/VisualizerStreamHandler.java
new file mode 100644
index 000000000..65832a4c1
--- /dev/null
+++ b/app/src/main/java/it/dhd/oxygencustomizer/xposed/views/pulse/VisualizerStreamHandler.java
@@ -0,0 +1,215 @@
+package it.dhd.oxygencustomizer.xposed.views.pulse;
+
+/*
+ * Modified from crDroid
+ * https://github.com/crdroidandroid/android_frameworks_base/blob/9ce156fa20d3f7222b8ec63c281b44d9899abc48/packages/SystemUI/src/com/android/systemui/pulse
+ * Copyright (C) 2016-2022 crDroid Android Project
+ *
+ * @author: Randall Rushing
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Control state of visualizer link, stream validation, and the flow
+ * of data to listener
+ *
+ */
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.media.audiofx.Visualizer;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.util.Log;
+
+import java.util.concurrent.Executor;
+
+public class VisualizerStreamHandler {
+ public interface Listener {
+ public void onStreamAnalyzed(boolean isValid);
+
+ public void onFFTUpdate(byte[] bytes);
+
+ public void onWaveFormUpdate(byte[] bytes);
+ }
+
+ protected static final String TAG = VisualizerStreamHandler.class.getSimpleName();
+ protected static final boolean ENABLE_WAVEFORM = false;
+
+ protected static final int MSG_STREAM_VALID = 55;
+ protected static final int MSG_STREAM_INVALID = 56;
+ // we have 6 seconds to get three consecutive valid frames
+ protected static final int VALIDATION_TIME_MILLIS = 6000;
+ protected static final int VALID_BYTES_THRESHOLD = 3;
+
+ protected Visualizer mVisualizer;
+
+ // manage stream validation
+ protected int mConsecutiveFrames;
+ protected boolean mIsValidated;
+ protected boolean mIsAnalyzed;
+ protected boolean mIsPrepared;
+ protected boolean mIsPaused;
+
+ protected Context mContext;
+ protected PulseControllerImpl mController;
+ protected Listener mListener;
+
+ private final Executor mUiBgExecutor;
+
+ @SuppressLint("HandlerLeak")
+ private Handler mHandler = new Handler(Looper.getMainLooper()) {
+ @Override
+ public void handleMessage(Message m) {
+ switch (m.what) {
+ case MSG_STREAM_VALID -> {
+ mIsAnalyzed = true;
+ mIsValidated = true;
+ mIsPrepared = false;
+ mListener.onStreamAnalyzed(true);
+ }
+ case MSG_STREAM_INVALID -> {
+ mIsAnalyzed = true;
+ mIsValidated = false;
+ mIsPrepared = false;
+ mListener.onStreamAnalyzed(false);
+ }
+ }
+ }
+ };
+
+ public VisualizerStreamHandler(Context context, PulseControllerImpl controller,
+ VisualizerStreamHandler.Listener listener, Executor backgroundExecutor) {
+ Log.d(TAG, "VisualizerStreamHandler()");
+ mContext = context;
+ mController = controller;
+ mListener = listener;
+ mUiBgExecutor = backgroundExecutor;
+ }
+
+ /**
+ * Links the visualizer to a player
+ */
+ public final void link() {
+ Log.d(TAG, "VisualizerStreamHandler link()");
+ mUiBgExecutor.execute(() -> {
+ pause();
+ resetAnalyzer();
+
+ if (mVisualizer == null) {
+ try {
+ mVisualizer = new Visualizer(0);
+ } catch (Exception e) {
+ return;
+ }
+ mVisualizer.setEnabled(false);
+ mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
+
+ Visualizer.OnDataCaptureListener captureListener = new Visualizer.OnDataCaptureListener() {
+ @Override
+ public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes,
+ int samplingRate) {
+ if (ENABLE_WAVEFORM) {
+ analyze(bytes);
+ if (isValidStream() && !mIsPaused) {
+ mListener.onWaveFormUpdate(bytes);
+ }
+ }
+ }
+
+ @Override
+ public void onFftDataCapture(Visualizer visualizer, byte[] bytes,
+ int samplingRate) {
+ analyze(bytes);
+ if (isValidStream() && !mIsPaused) {
+ mListener.onFFTUpdate(bytes);
+ }
+ }
+ };
+
+ mVisualizer.setDataCaptureListener(captureListener,
+ (int) (Visualizer.getMaxCaptureRate() * 0.75), ENABLE_WAVEFORM, true);
+
+ }
+ mVisualizer.setEnabled(true);
+ });
+ }
+
+ public final void unlink() {
+ if (mVisualizer != null) {
+ pause();
+ mVisualizer.setEnabled(false);
+ mVisualizer.release();
+ mVisualizer = null;
+ resetAnalyzer();
+ }
+ }
+
+ public boolean isValidStream() {
+ return mIsAnalyzed && mIsValidated;
+ }
+
+ public void resetAnalyzer() {
+ mIsAnalyzed = false;
+ mIsValidated = false;
+ mIsPrepared = false;
+ mConsecutiveFrames = 0;
+ }
+
+ public void pause() {
+ mIsPaused = true;
+ }
+
+ public void resume() {
+ mIsPaused = false;
+ }
+
+ private void analyze(byte[] data) {
+ Log.d(TAG, "analyze: ");
+ if (mIsAnalyzed) {
+ return;
+ }
+
+ Log.d(TAG, "analyze: mIsAnalyzed = false");
+
+ if (!mIsPrepared) {
+ Log.d(TAG, "analyze: !mIsPrepared send MSG_STREAM_INVALID");
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_STREAM_INVALID),
+ VALIDATION_TIME_MILLIS);
+ mIsPrepared = true;
+ }
+
+ if (isDataEmpty(data)) {
+ mConsecutiveFrames = 0;
+ } else {
+ mConsecutiveFrames++;
+ }
+
+ Log.d(TAG, "analyze: mConsecutiveFrames = " + mConsecutiveFrames + " VALID_BYTES_THRESHOLD = " + VALID_BYTES_THRESHOLD);
+
+ if (mConsecutiveFrames == VALID_BYTES_THRESHOLD) {
+ mIsPaused = true;
+ mHandler.removeMessages(MSG_STREAM_INVALID);
+ mHandler.sendEmptyMessage(MSG_STREAM_VALID);
+ }
+ }
+
+ private boolean isDataEmpty(byte[] data) {
+ for (byte datum : data) {
+ if (datum != 0) {
+ return false;
+ }
+ }
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/anim/fragment_enter.xml b/app/src/main/res/anim/fragment_enter.xml
new file mode 100644
index 000000000..affbb54b9
--- /dev/null
+++ b/app/src/main/res/anim/fragment_enter.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/fragment_enter_pop.xml b/app/src/main/res/anim/fragment_enter_pop.xml
new file mode 100644
index 000000000..7e863ffbc
--- /dev/null
+++ b/app/src/main/res/anim/fragment_enter_pop.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/anim/fragment_exit.xml b/app/src/main/res/anim/fragment_exit.xml
new file mode 100644
index 000000000..c4ccf0dc4
--- /dev/null
+++ b/app/src/main/res/anim/fragment_exit.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/anim/fragment_exit_pop.xml b/app/src/main/res/anim/fragment_exit_pop.xml
new file mode 100644
index 000000000..efb2c235e
--- /dev/null
+++ b/app/src/main/res/anim/fragment_exit_pop.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/anim/fragment_fade_in.xml b/app/src/main/res/anim/fragment_fade_in.xml
new file mode 100644
index 000000000..6d3ea2d27
--- /dev/null
+++ b/app/src/main/res/anim/fragment_fade_in.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/fragment_fade_out.xml b/app/src/main/res/anim/fragment_fade_out.xml
new file mode 100644
index 000000000..143c9cbd6
--- /dev/null
+++ b/app/src/main/res/anim/fragment_fade_out.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/color/color_accent_0_10_overlay.xml b/app/src/main/res/color/color_accent_0_10_overlay.xml
new file mode 100644
index 000000000..fbe43ce80
--- /dev/null
+++ b/app/src/main/res/color/color_accent_0_10_overlay.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/color/color_container_overlay_dark.xml b/app/src/main/res/color/color_container_overlay_dark.xml
new file mode 100644
index 000000000..f510d8445
--- /dev/null
+++ b/app/src/main/res/color/color_container_overlay_dark.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/color/color_container_overlay_light.xml b/app/src/main/res/color/color_container_overlay_light.xml
new file mode 100644
index 000000000..b7de91871
--- /dev/null
+++ b/app/src/main/res/color/color_container_overlay_light.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/color/option_border_color.xml b/app/src/main/res/color/option_border_color.xml
new file mode 100644
index 000000000..880724c35
--- /dev/null
+++ b/app/src/main/res/color/option_border_color.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/color/text_color_primary.xml b/app/src/main/res/color/text_color_primary.xml
new file mode 100644
index 000000000..f529d3817
--- /dev/null
+++ b/app/src/main/res/color/text_color_primary.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/color/text_color_secondary.xml b/app/src/main/res/color/text_color_secondary.xml
new file mode 100644
index 000000000..45a4ef17b
--- /dev/null
+++ b/app/src/main/res/color/text_color_secondary.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-nodpi/drdisagree.png b/app/src/main/res/drawable-nodpi/drdisagree.png
new file mode 100644
index 000000000..24a61d237
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/drdisagree.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_0.png b/app/src/main/res/drawable-nodpi/fingerprint_0.png
new file mode 100644
index 000000000..6726dbedb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_1.png b/app/src/main/res/drawable-nodpi/fingerprint_1.png
new file mode 100644
index 000000000..9a2ab9a7f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_10.png b/app/src/main/res/drawable-nodpi/fingerprint_10.png
new file mode 100644
index 000000000..4925c2cb8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_11.png b/app/src/main/res/drawable-nodpi/fingerprint_11.png
new file mode 100644
index 000000000..59b91a6fc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_12.png b/app/src/main/res/drawable-nodpi/fingerprint_12.png
new file mode 100644
index 000000000..1bb2a7d38
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_13.png b/app/src/main/res/drawable-nodpi/fingerprint_13.png
new file mode 100644
index 000000000..b49690e03
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_14.png b/app/src/main/res/drawable-nodpi/fingerprint_14.png
new file mode 100644
index 000000000..add12e5fd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_15.png b/app/src/main/res/drawable-nodpi/fingerprint_15.png
new file mode 100644
index 000000000..4d7af8a2a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_16.png b/app/src/main/res/drawable-nodpi/fingerprint_16.png
new file mode 100644
index 000000000..d761f78ba
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_17.png b/app/src/main/res/drawable-nodpi/fingerprint_17.png
new file mode 100644
index 000000000..816b0e4c4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_19.png b/app/src/main/res/drawable-nodpi/fingerprint_19.png
new file mode 100644
index 000000000..3730624d9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_2.png b/app/src/main/res/drawable-nodpi/fingerprint_2.png
new file mode 100644
index 000000000..480f78146
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_20.png b/app/src/main/res/drawable-nodpi/fingerprint_20.png
new file mode 100644
index 000000000..d8d09eb75
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_21.png b/app/src/main/res/drawable-nodpi/fingerprint_21.png
new file mode 100644
index 000000000..caabc9dc8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_22.png b/app/src/main/res/drawable-nodpi/fingerprint_22.png
new file mode 100644
index 000000000..43e9eab9f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_3.png b/app/src/main/res/drawable-nodpi/fingerprint_3.png
new file mode 100644
index 000000000..1536e4a74
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_4.png b/app/src/main/res/drawable-nodpi/fingerprint_4.png
new file mode 100644
index 000000000..431f6c816
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_5.png b/app/src/main/res/drawable-nodpi/fingerprint_5.png
new file mode 100644
index 000000000..63cf6acb6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_6.png b/app/src/main/res/drawable-nodpi/fingerprint_6.png
new file mode 100644
index 000000000..31c8ec210
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_7.png b/app/src/main/res/drawable-nodpi/fingerprint_7.png
new file mode 100644
index 000000000..19bc68f97
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_8.png b/app/src/main/res/drawable-nodpi/fingerprint_8.png
new file mode 100644
index 000000000..293c4bc7f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/fingerprint_9.png b/app/src/main/res/drawable-nodpi/fingerprint_9.png
new file mode 100644
index 000000000..c346f9ccf
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/fingerprint_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_0.png b/app/src/main/res/drawable-nodpi/google_0.png
new file mode 100644
index 000000000..fc9e40efd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_1.png b/app/src/main/res/drawable-nodpi/google_1.png
new file mode 100644
index 000000000..be0b0130f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_10.png b/app/src/main/res/drawable-nodpi/google_10.png
new file mode 100644
index 000000000..fbb99c76e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_11.png b/app/src/main/res/drawable-nodpi/google_11.png
new file mode 100644
index 000000000..c582b6a45
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_12.png b/app/src/main/res/drawable-nodpi/google_12.png
new file mode 100644
index 000000000..c582b6a45
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_13.png b/app/src/main/res/drawable-nodpi/google_13.png
new file mode 100644
index 000000000..283e387f2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_14.png b/app/src/main/res/drawable-nodpi/google_14.png
new file mode 100644
index 000000000..283e387f2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_15.png b/app/src/main/res/drawable-nodpi/google_15.png
new file mode 100644
index 000000000..283e387f2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_16.png b/app/src/main/res/drawable-nodpi/google_16.png
new file mode 100644
index 000000000..283e387f2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_17.png b/app/src/main/res/drawable-nodpi/google_17.png
new file mode 100644
index 000000000..283e387f2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_18.png b/app/src/main/res/drawable-nodpi/google_18.png
new file mode 100644
index 000000000..283e387f2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_19.png b/app/src/main/res/drawable-nodpi/google_19.png
new file mode 100644
index 000000000..79202ffbd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_2.png b/app/src/main/res/drawable-nodpi/google_2.png
new file mode 100644
index 000000000..fc9e40efd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_20.png b/app/src/main/res/drawable-nodpi/google_20.png
new file mode 100644
index 000000000..79202ffbd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_21.png b/app/src/main/res/drawable-nodpi/google_21.png
new file mode 100644
index 000000000..79202ffbd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_22.png b/app/src/main/res/drawable-nodpi/google_22.png
new file mode 100644
index 000000000..79202ffbd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_23.png b/app/src/main/res/drawable-nodpi/google_23.png
new file mode 100644
index 000000000..4a4eb7e17
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_24.png b/app/src/main/res/drawable-nodpi/google_24.png
new file mode 100644
index 000000000..4a4eb7e17
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_25.png b/app/src/main/res/drawable-nodpi/google_25.png
new file mode 100644
index 000000000..352049fcf
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_26.png b/app/src/main/res/drawable-nodpi/google_26.png
new file mode 100644
index 000000000..d1ad43f1b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_27.png b/app/src/main/res/drawable-nodpi/google_27.png
new file mode 100644
index 000000000..2bcffcf3b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_28.png b/app/src/main/res/drawable-nodpi/google_28.png
new file mode 100644
index 000000000..8952def4d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_29.png b/app/src/main/res/drawable-nodpi/google_29.png
new file mode 100644
index 000000000..5e6d872d1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_3.png b/app/src/main/res/drawable-nodpi/google_3.png
new file mode 100644
index 000000000..be0b0130f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_30.png b/app/src/main/res/drawable-nodpi/google_30.png
new file mode 100644
index 000000000..22340fb42
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_31.png b/app/src/main/res/drawable-nodpi/google_31.png
new file mode 100644
index 000000000..4d379cc04
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_32.png b/app/src/main/res/drawable-nodpi/google_32.png
new file mode 100644
index 000000000..18fcc8570
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_33.png b/app/src/main/res/drawable-nodpi/google_33.png
new file mode 100644
index 000000000..4d379cc04
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_34.png b/app/src/main/res/drawable-nodpi/google_34.png
new file mode 100644
index 000000000..18fcc8570
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_35.png b/app/src/main/res/drawable-nodpi/google_35.png
new file mode 100644
index 000000000..fbb99c76e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_36.png b/app/src/main/res/drawable-nodpi/google_36.png
new file mode 100644
index 000000000..40a462a09
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_37.png b/app/src/main/res/drawable-nodpi/google_37.png
new file mode 100644
index 000000000..6c3cef69f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_38.png b/app/src/main/res/drawable-nodpi/google_38.png
new file mode 100644
index 000000000..6c3cef69f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_39.png b/app/src/main/res/drawable-nodpi/google_39.png
new file mode 100644
index 000000000..6c3cef69f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_4.png b/app/src/main/res/drawable-nodpi/google_4.png
new file mode 100644
index 000000000..be0b0130f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_40.png b/app/src/main/res/drawable-nodpi/google_40.png
new file mode 100644
index 000000000..fdb88bb72
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_41.png b/app/src/main/res/drawable-nodpi/google_41.png
new file mode 100644
index 000000000..283e387f2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_42.png b/app/src/main/res/drawable-nodpi/google_42.png
new file mode 100644
index 000000000..25a9756cc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_43.png b/app/src/main/res/drawable-nodpi/google_43.png
new file mode 100644
index 000000000..283e387f2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_44.png b/app/src/main/res/drawable-nodpi/google_44.png
new file mode 100644
index 000000000..5e6d872d1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_45.png b/app/src/main/res/drawable-nodpi/google_45.png
new file mode 100644
index 000000000..a13050595
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_46.png b/app/src/main/res/drawable-nodpi/google_46.png
new file mode 100644
index 000000000..25a9756cc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_47.png b/app/src/main/res/drawable-nodpi/google_47.png
new file mode 100644
index 000000000..a13050595
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_5.png b/app/src/main/res/drawable-nodpi/google_5.png
new file mode 100644
index 000000000..fbb99c76e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_6.png b/app/src/main/res/drawable-nodpi/google_6.png
new file mode 100644
index 000000000..fbb99c76e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_7.png b/app/src/main/res/drawable-nodpi/google_7.png
new file mode 100644
index 000000000..fbb99c76e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_8.png b/app/src/main/res/drawable-nodpi/google_8.png
new file mode 100644
index 000000000..fbb99c76e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_9.png b/app/src/main/res/drawable-nodpi/google_9.png
new file mode 100644
index 000000000..c582b6a45
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/google_na.png b/app/src/main/res/drawable-nodpi/google_na.png
new file mode 100644
index 000000000..21e3dfb27
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/google_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_0.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_0.png
new file mode 100644
index 000000000..67f702701
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_1.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_1.png
new file mode 100644
index 000000000..38e4fec62
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_10.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_10.png
new file mode 100644
index 000000000..fb65d0bd7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_11.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_11.png
new file mode 100644
index 000000000..8c2c1e21d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_12.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_12.png
new file mode 100644
index 000000000..8c2c1e21d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_13.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_13.png
new file mode 100644
index 000000000..afd219db9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_14.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_14.png
new file mode 100644
index 000000000..afd219db9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_15.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_15.png
new file mode 100644
index 000000000..afd219db9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_16.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_16.png
new file mode 100644
index 000000000..afd219db9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_17.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_17.png
new file mode 100644
index 000000000..afd219db9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_18.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_18.png
new file mode 100644
index 000000000..afd219db9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_19.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_19.png
new file mode 100644
index 000000000..f8c7055fd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_2.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_2.png
new file mode 100644
index 000000000..67f702701
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_20.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_20.png
new file mode 100644
index 000000000..f8c7055fd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_21.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_21.png
new file mode 100644
index 000000000..f8c7055fd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_22.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_22.png
new file mode 100644
index 000000000..f8c7055fd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_23.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_23.png
new file mode 100644
index 000000000..61c07a8b7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_24.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_24.png
new file mode 100644
index 000000000..61c07a8b7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_25.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_25.png
new file mode 100644
index 000000000..6435bee12
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_26.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_26.png
new file mode 100644
index 000000000..1ef60681f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_27.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_27.png
new file mode 100644
index 000000000..26f43604a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_28.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_28.png
new file mode 100644
index 000000000..432775585
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_29.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_29.png
new file mode 100644
index 000000000..26f43604a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_3.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_3.png
new file mode 100644
index 000000000..38e4fec62
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_30.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_30.png
new file mode 100644
index 000000000..432775585
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_31.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_31.png
new file mode 100644
index 000000000..7a19b27ad
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_32.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_32.png
new file mode 100644
index 000000000..954fb7db4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_33.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_33.png
new file mode 100644
index 000000000..7a19b27ad
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_34.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_34.png
new file mode 100644
index 000000000..954fb7db4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_35.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_35.png
new file mode 100644
index 000000000..fb65d0bd7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_36.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_36.png
new file mode 100644
index 000000000..b845de252
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_37.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_37.png
new file mode 100644
index 000000000..38e4fec62
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_38.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_38.png
new file mode 100644
index 000000000..38e4fec62
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_39.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_39.png
new file mode 100644
index 000000000..38e4fec62
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_4.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_4.png
new file mode 100644
index 000000000..fb65d0bd7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_40.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_40.png
new file mode 100644
index 000000000..8c2c1e21d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_41.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_41.png
new file mode 100644
index 000000000..afd219db9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_42.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_42.png
new file mode 100644
index 000000000..eeb2814d8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_43.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_43.png
new file mode 100644
index 000000000..afd219db9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_44.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_44.png
new file mode 100644
index 000000000..26f43604a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_45.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_45.png
new file mode 100644
index 000000000..8c2c1e21d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_46.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_46.png
new file mode 100644
index 000000000..eeb2814d8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_47.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_47.png
new file mode 100644
index 000000000..2d04cff7b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_5.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_5.png
new file mode 100644
index 000000000..fb65d0bd7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_6.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_6.png
new file mode 100644
index 000000000..fb65d0bd7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_7.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_7.png
new file mode 100644
index 000000000..fb65d0bd7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_8.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_8.png
new file mode 100644
index 000000000..fb65d0bd7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_9.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_9.png
new file mode 100644
index 000000000..8c2c1e21d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_color_hand_na.png b/app/src/main/res/drawable-nodpi/icons8_color_hand_na.png
new file mode 100644
index 000000000..954fb7db4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_color_hand_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/icons8_na.png b/app/src/main/res/drawable-nodpi/icons8_na.png
new file mode 100644
index 000000000..954fb7db4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/icons8_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_0.png b/app/src/main/res/drawable-nodpi/marshmallow_0.png
new file mode 100644
index 000000000..d25b81149
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_1.png b/app/src/main/res/drawable-nodpi/marshmallow_1.png
new file mode 100644
index 000000000..d25b81149
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_10.png b/app/src/main/res/drawable-nodpi/marshmallow_10.png
new file mode 100644
index 000000000..6b9789ca8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_11.png b/app/src/main/res/drawable-nodpi/marshmallow_11.png
new file mode 100644
index 000000000..eb7a4fb9f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_12.png b/app/src/main/res/drawable-nodpi/marshmallow_12.png
new file mode 100644
index 000000000..eb7a4fb9f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_13.png b/app/src/main/res/drawable-nodpi/marshmallow_13.png
new file mode 100644
index 000000000..09bd249ed
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_14.png b/app/src/main/res/drawable-nodpi/marshmallow_14.png
new file mode 100644
index 000000000..259b46685
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_15.png b/app/src/main/res/drawable-nodpi/marshmallow_15.png
new file mode 100644
index 000000000..2c6fcf792
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_16.png b/app/src/main/res/drawable-nodpi/marshmallow_16.png
new file mode 100644
index 000000000..f203a55b9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_17.png b/app/src/main/res/drawable-nodpi/marshmallow_17.png
new file mode 100644
index 000000000..2e76eaa84
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_18.png b/app/src/main/res/drawable-nodpi/marshmallow_18.png
new file mode 100644
index 000000000..61b541064
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_19.png b/app/src/main/res/drawable-nodpi/marshmallow_19.png
new file mode 100644
index 000000000..fba3b21d4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_2.png b/app/src/main/res/drawable-nodpi/marshmallow_2.png
new file mode 100644
index 000000000..d25b81149
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_20.png b/app/src/main/res/drawable-nodpi/marshmallow_20.png
new file mode 100644
index 000000000..50562acec
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_21.png b/app/src/main/res/drawable-nodpi/marshmallow_21.png
new file mode 100644
index 000000000..fba3b21d4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_22.png b/app/src/main/res/drawable-nodpi/marshmallow_22.png
new file mode 100644
index 000000000..fba3b21d4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_23.png b/app/src/main/res/drawable-nodpi/marshmallow_23.png
new file mode 100644
index 000000000..511d2a77b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_24.png b/app/src/main/res/drawable-nodpi/marshmallow_24.png
new file mode 100644
index 000000000..511d2a77b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_25.png b/app/src/main/res/drawable-nodpi/marshmallow_25.png
new file mode 100644
index 000000000..f267c84f3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_26.png b/app/src/main/res/drawable-nodpi/marshmallow_26.png
new file mode 100644
index 000000000..689aa1f75
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_27.png b/app/src/main/res/drawable-nodpi/marshmallow_27.png
new file mode 100644
index 000000000..75a34aac4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_28.png b/app/src/main/res/drawable-nodpi/marshmallow_28.png
new file mode 100644
index 000000000..9cab75a1a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_29.png b/app/src/main/res/drawable-nodpi/marshmallow_29.png
new file mode 100644
index 000000000..75a34aac4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_3.png b/app/src/main/res/drawable-nodpi/marshmallow_3.png
new file mode 100644
index 000000000..26c7a43e9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_30.png b/app/src/main/res/drawable-nodpi/marshmallow_30.png
new file mode 100644
index 000000000..9cab75a1a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_31.png b/app/src/main/res/drawable-nodpi/marshmallow_31.png
new file mode 100644
index 000000000..3b059e5f0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_32.png b/app/src/main/res/drawable-nodpi/marshmallow_32.png
new file mode 100644
index 000000000..f8dbce831
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_33.png b/app/src/main/res/drawable-nodpi/marshmallow_33.png
new file mode 100644
index 000000000..3b059e5f0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_34.png b/app/src/main/res/drawable-nodpi/marshmallow_34.png
new file mode 100644
index 000000000..f8dbce831
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_35.png b/app/src/main/res/drawable-nodpi/marshmallow_35.png
new file mode 100644
index 000000000..6b9789ca8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_36.png b/app/src/main/res/drawable-nodpi/marshmallow_36.png
new file mode 100644
index 000000000..86a980caa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_37.png b/app/src/main/res/drawable-nodpi/marshmallow_37.png
new file mode 100644
index 000000000..9083cd762
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_38.png b/app/src/main/res/drawable-nodpi/marshmallow_38.png
new file mode 100644
index 000000000..9083cd762
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_39.png b/app/src/main/res/drawable-nodpi/marshmallow_39.png
new file mode 100644
index 000000000..9083cd762
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_4.png b/app/src/main/res/drawable-nodpi/marshmallow_4.png
new file mode 100644
index 000000000..26c7a43e9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_40.png b/app/src/main/res/drawable-nodpi/marshmallow_40.png
new file mode 100644
index 000000000..88e88794e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_41.png b/app/src/main/res/drawable-nodpi/marshmallow_41.png
new file mode 100644
index 000000000..1d215345c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_42.png b/app/src/main/res/drawable-nodpi/marshmallow_42.png
new file mode 100644
index 000000000..2208ac455
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_43.png b/app/src/main/res/drawable-nodpi/marshmallow_43.png
new file mode 100644
index 000000000..1d215345c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_44.png b/app/src/main/res/drawable-nodpi/marshmallow_44.png
new file mode 100644
index 000000000..9cab75a1a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_45.png b/app/src/main/res/drawable-nodpi/marshmallow_45.png
new file mode 100644
index 000000000..26c7a43e9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_46.png b/app/src/main/res/drawable-nodpi/marshmallow_46.png
new file mode 100644
index 000000000..2208ac455
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_47.png b/app/src/main/res/drawable-nodpi/marshmallow_47.png
new file mode 100644
index 000000000..26c7a43e9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_5.png b/app/src/main/res/drawable-nodpi/marshmallow_5.png
new file mode 100644
index 000000000..61b541064
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_6.png b/app/src/main/res/drawable-nodpi/marshmallow_6.png
new file mode 100644
index 000000000..df2357894
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_7.png b/app/src/main/res/drawable-nodpi/marshmallow_7.png
new file mode 100644
index 000000000..61b541064
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_8.png b/app/src/main/res/drawable-nodpi/marshmallow_8.png
new file mode 100644
index 000000000..6b9789ca8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_9.png b/app/src/main/res/drawable-nodpi/marshmallow_9.png
new file mode 100644
index 000000000..041867829
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/marshmallow_na.png b/app/src/main/res/drawable-nodpi/marshmallow_na.png
new file mode 100644
index 000000000..9c7abaadf
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/marshmallow_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_1.webp b/app/src/main/res/drawable-nodpi/qs_header_image_1.webp
new file mode 100644
index 000000000..08dc9bfd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_1.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_10.webp b/app/src/main/res/drawable-nodpi/qs_header_image_10.webp
new file mode 100644
index 000000000..3033545e1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_10.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_11.webp b/app/src/main/res/drawable-nodpi/qs_header_image_11.webp
new file mode 100644
index 000000000..bb2f2d87f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_11.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_12.webp b/app/src/main/res/drawable-nodpi/qs_header_image_12.webp
new file mode 100644
index 000000000..db0ff38f6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_12.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_13.webp b/app/src/main/res/drawable-nodpi/qs_header_image_13.webp
new file mode 100644
index 000000000..5f5b7decc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_13.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_14.webp b/app/src/main/res/drawable-nodpi/qs_header_image_14.webp
new file mode 100644
index 000000000..25aa35c64
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_14.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_15.webp b/app/src/main/res/drawable-nodpi/qs_header_image_15.webp
new file mode 100644
index 000000000..77769890d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_15.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_16.webp b/app/src/main/res/drawable-nodpi/qs_header_image_16.webp
new file mode 100644
index 000000000..cc744459d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_16.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_17.webp b/app/src/main/res/drawable-nodpi/qs_header_image_17.webp
new file mode 100644
index 000000000..964c8b671
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_17.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_18.webp b/app/src/main/res/drawable-nodpi/qs_header_image_18.webp
new file mode 100644
index 000000000..13cf47ce8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_18.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_19.webp b/app/src/main/res/drawable-nodpi/qs_header_image_19.webp
new file mode 100644
index 000000000..4aaf008d8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_19.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_2.webp b/app/src/main/res/drawable-nodpi/qs_header_image_2.webp
new file mode 100644
index 000000000..cc033666b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_2.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_20.webp b/app/src/main/res/drawable-nodpi/qs_header_image_20.webp
new file mode 100644
index 000000000..6c9671a2a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_20.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_21.webp b/app/src/main/res/drawable-nodpi/qs_header_image_21.webp
new file mode 100644
index 000000000..d6bdda158
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_21.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_22.webp b/app/src/main/res/drawable-nodpi/qs_header_image_22.webp
new file mode 100644
index 000000000..785e43d65
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_22.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_23.webp b/app/src/main/res/drawable-nodpi/qs_header_image_23.webp
new file mode 100644
index 000000000..4d8bb0a4c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_23.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_24.webp b/app/src/main/res/drawable-nodpi/qs_header_image_24.webp
new file mode 100644
index 000000000..6b367808e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_24.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_3.webp b/app/src/main/res/drawable-nodpi/qs_header_image_3.webp
new file mode 100644
index 000000000..ae3772e0d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_3.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_4.webp b/app/src/main/res/drawable-nodpi/qs_header_image_4.webp
new file mode 100644
index 000000000..e5e867f71
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_4.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_5.webp b/app/src/main/res/drawable-nodpi/qs_header_image_5.webp
new file mode 100644
index 000000000..47e6e3a47
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_5.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_6.webp b/app/src/main/res/drawable-nodpi/qs_header_image_6.webp
new file mode 100644
index 000000000..9843edc3c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_6.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_7.webp b/app/src/main/res/drawable-nodpi/qs_header_image_7.webp
new file mode 100644
index 000000000..3e039895a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_7.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_8.webp b/app/src/main/res/drawable-nodpi/qs_header_image_8.webp
new file mode 100644
index 000000000..5718b7fbc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_8.webp differ
diff --git a/app/src/main/res/drawable-nodpi/qs_header_image_9.webp b/app/src/main/res/drawable-nodpi/qs_header_image_9.webp
new file mode 100644
index 000000000..52e3712ef
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/qs_header_image_9.webp differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_0.png b/app/src/main/res/drawable-nodpi/stickers_0.png
new file mode 100644
index 000000000..49bb8af8f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_1.png b/app/src/main/res/drawable-nodpi/stickers_1.png
new file mode 100644
index 000000000..2f1a5bbd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_10.png b/app/src/main/res/drawable-nodpi/stickers_10.png
new file mode 100644
index 000000000..99cdb36aa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_11.png b/app/src/main/res/drawable-nodpi/stickers_11.png
new file mode 100644
index 000000000..afdb9d523
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_12.png b/app/src/main/res/drawable-nodpi/stickers_12.png
new file mode 100644
index 000000000..afdb9d523
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_13.png b/app/src/main/res/drawable-nodpi/stickers_13.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_14.png b/app/src/main/res/drawable-nodpi/stickers_14.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_15.png b/app/src/main/res/drawable-nodpi/stickers_15.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_16.png b/app/src/main/res/drawable-nodpi/stickers_16.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_17.png b/app/src/main/res/drawable-nodpi/stickers_17.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_18.png b/app/src/main/res/drawable-nodpi/stickers_18.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_19.png b/app/src/main/res/drawable-nodpi/stickers_19.png
new file mode 100644
index 000000000..35b0777bd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_2.png b/app/src/main/res/drawable-nodpi/stickers_2.png
new file mode 100644
index 000000000..49bb8af8f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_20.png b/app/src/main/res/drawable-nodpi/stickers_20.png
new file mode 100644
index 000000000..35b0777bd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_21.png b/app/src/main/res/drawable-nodpi/stickers_21.png
new file mode 100644
index 000000000..35b0777bd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_22.png b/app/src/main/res/drawable-nodpi/stickers_22.png
new file mode 100644
index 000000000..35b0777bd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_23.png b/app/src/main/res/drawable-nodpi/stickers_23.png
new file mode 100644
index 000000000..4866291d8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_24.png b/app/src/main/res/drawable-nodpi/stickers_24.png
new file mode 100644
index 000000000..4866291d8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_25.png b/app/src/main/res/drawable-nodpi/stickers_25.png
new file mode 100644
index 000000000..490b1bc18
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_26.png b/app/src/main/res/drawable-nodpi/stickers_26.png
new file mode 100644
index 000000000..30a6279f4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_27.png b/app/src/main/res/drawable-nodpi/stickers_27.png
new file mode 100644
index 000000000..0891ead99
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_28.png b/app/src/main/res/drawable-nodpi/stickers_28.png
new file mode 100644
index 000000000..e789fcea7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_29.png b/app/src/main/res/drawable-nodpi/stickers_29.png
new file mode 100644
index 000000000..8476a2ce7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_3.png b/app/src/main/res/drawable-nodpi/stickers_3.png
new file mode 100644
index 000000000..2f1a5bbd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_30.png b/app/src/main/res/drawable-nodpi/stickers_30.png
new file mode 100644
index 000000000..d347d4f44
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_31.png b/app/src/main/res/drawable-nodpi/stickers_31.png
new file mode 100644
index 000000000..afb85c087
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_32.png b/app/src/main/res/drawable-nodpi/stickers_32.png
new file mode 100644
index 000000000..6881ccb25
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_33.png b/app/src/main/res/drawable-nodpi/stickers_33.png
new file mode 100644
index 000000000..afb85c087
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_34.png b/app/src/main/res/drawable-nodpi/stickers_34.png
new file mode 100644
index 000000000..6881ccb25
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_35.png b/app/src/main/res/drawable-nodpi/stickers_35.png
new file mode 100644
index 000000000..99cdb36aa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_36.png b/app/src/main/res/drawable-nodpi/stickers_36.png
new file mode 100644
index 000000000..f040604ef
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_37.png b/app/src/main/res/drawable-nodpi/stickers_37.png
new file mode 100644
index 000000000..2f1a5bbd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_38.png b/app/src/main/res/drawable-nodpi/stickers_38.png
new file mode 100644
index 000000000..2f1a5bbd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_39.png b/app/src/main/res/drawable-nodpi/stickers_39.png
new file mode 100644
index 000000000..2f1a5bbd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_4.png b/app/src/main/res/drawable-nodpi/stickers_4.png
new file mode 100644
index 000000000..2f1a5bbd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_40.png b/app/src/main/res/drawable-nodpi/stickers_40.png
new file mode 100644
index 000000000..afdb9d523
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_41.png b/app/src/main/res/drawable-nodpi/stickers_41.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_42.png b/app/src/main/res/drawable-nodpi/stickers_42.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_43.png b/app/src/main/res/drawable-nodpi/stickers_43.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_44.png b/app/src/main/res/drawable-nodpi/stickers_44.png
new file mode 100644
index 000000000..0891ead99
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_45.png b/app/src/main/res/drawable-nodpi/stickers_45.png
new file mode 100644
index 000000000..2f1a5bbd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_46.png b/app/src/main/res/drawable-nodpi/stickers_46.png
new file mode 100644
index 000000000..3cd97d6c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_47.png b/app/src/main/res/drawable-nodpi/stickers_47.png
new file mode 100644
index 000000000..2f1a5bbd3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_5.png b/app/src/main/res/drawable-nodpi/stickers_5.png
new file mode 100644
index 000000000..99cdb36aa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_6.png b/app/src/main/res/drawable-nodpi/stickers_6.png
new file mode 100644
index 000000000..99cdb36aa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_7.png b/app/src/main/res/drawable-nodpi/stickers_7.png
new file mode 100644
index 000000000..99cdb36aa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_8.png b/app/src/main/res/drawable-nodpi/stickers_8.png
new file mode 100644
index 000000000..99cdb36aa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_9.png b/app/src/main/res/drawable-nodpi/stickers_9.png
new file mode 100644
index 000000000..afdb9d523
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/stickers_na.png b/app/src/main/res/drawable-nodpi/stickers_na.png
new file mode 100644
index 000000000..8f8c5818e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/stickers_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_0.png b/app/src/main/res/drawable-nodpi/weather_color_0.png
new file mode 100644
index 000000000..5bc8f8549
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_1.png b/app/src/main/res/drawable-nodpi/weather_color_1.png
new file mode 100644
index 000000000..1664c72ca
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_10.png b/app/src/main/res/drawable-nodpi/weather_color_10.png
new file mode 100644
index 000000000..e261b2b49
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_11.png b/app/src/main/res/drawable-nodpi/weather_color_11.png
new file mode 100644
index 000000000..5f1b6b6c0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_12.png b/app/src/main/res/drawable-nodpi/weather_color_12.png
new file mode 100644
index 000000000..5f1b6b6c0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_13.png b/app/src/main/res/drawable-nodpi/weather_color_13.png
new file mode 100644
index 000000000..58936279d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_14.png b/app/src/main/res/drawable-nodpi/weather_color_14.png
new file mode 100644
index 000000000..58936279d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_15.png b/app/src/main/res/drawable-nodpi/weather_color_15.png
new file mode 100644
index 000000000..58936279d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_16.png b/app/src/main/res/drawable-nodpi/weather_color_16.png
new file mode 100644
index 000000000..58936279d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_17.png b/app/src/main/res/drawable-nodpi/weather_color_17.png
new file mode 100644
index 000000000..c9a81c11a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_18.png b/app/src/main/res/drawable-nodpi/weather_color_18.png
new file mode 100644
index 000000000..e1d2691bb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_19.png b/app/src/main/res/drawable-nodpi/weather_color_19.png
new file mode 100644
index 000000000..052cfc68d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_2.png b/app/src/main/res/drawable-nodpi/weather_color_2.png
new file mode 100644
index 000000000..1664c72ca
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_20.png b/app/src/main/res/drawable-nodpi/weather_color_20.png
new file mode 100644
index 000000000..d5c2da1c7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_21.png b/app/src/main/res/drawable-nodpi/weather_color_21.png
new file mode 100644
index 000000000..5830cb4d6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_22.png b/app/src/main/res/drawable-nodpi/weather_color_22.png
new file mode 100644
index 000000000..191a1b045
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_23.png b/app/src/main/res/drawable-nodpi/weather_color_23.png
new file mode 100644
index 000000000..d7a10eed9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_24.png b/app/src/main/res/drawable-nodpi/weather_color_24.png
new file mode 100644
index 000000000..d7a10eed9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_25.png b/app/src/main/res/drawable-nodpi/weather_color_25.png
new file mode 100644
index 000000000..6d42b04ec
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_26.png b/app/src/main/res/drawable-nodpi/weather_color_26.png
new file mode 100644
index 000000000..5c6057de8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_27.png b/app/src/main/res/drawable-nodpi/weather_color_27.png
new file mode 100644
index 000000000..06b10f2c6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_28.png b/app/src/main/res/drawable-nodpi/weather_color_28.png
new file mode 100644
index 000000000..82b98ab8f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_29.png b/app/src/main/res/drawable-nodpi/weather_color_29.png
new file mode 100644
index 000000000..288a1eb00
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_3.png b/app/src/main/res/drawable-nodpi/weather_color_3.png
new file mode 100644
index 000000000..5bc8f8549
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_30.png b/app/src/main/res/drawable-nodpi/weather_color_30.png
new file mode 100644
index 000000000..52ae67dd9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_31.png b/app/src/main/res/drawable-nodpi/weather_color_31.png
new file mode 100644
index 000000000..3214e2d5f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_32.png b/app/src/main/res/drawable-nodpi/weather_color_32.png
new file mode 100644
index 000000000..da6d3d53b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_33.png b/app/src/main/res/drawable-nodpi/weather_color_33.png
new file mode 100644
index 000000000..a6ad077ff
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_34.png b/app/src/main/res/drawable-nodpi/weather_color_34.png
new file mode 100644
index 000000000..36974c906
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_35.png b/app/src/main/res/drawable-nodpi/weather_color_35.png
new file mode 100644
index 000000000..eaa92970c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_36.png b/app/src/main/res/drawable-nodpi/weather_color_36.png
new file mode 100644
index 000000000..dccd3c997
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_37.png b/app/src/main/res/drawable-nodpi/weather_color_37.png
new file mode 100644
index 000000000..ee51d9305
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_38.png b/app/src/main/res/drawable-nodpi/weather_color_38.png
new file mode 100644
index 000000000..ee51d9305
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_39.png b/app/src/main/res/drawable-nodpi/weather_color_39.png
new file mode 100644
index 000000000..ee51d9305
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_4.png b/app/src/main/res/drawable-nodpi/weather_color_4.png
new file mode 100644
index 000000000..5bc8f8549
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_40.png b/app/src/main/res/drawable-nodpi/weather_color_40.png
new file mode 100644
index 000000000..d4b64e598
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_41.png b/app/src/main/res/drawable-nodpi/weather_color_41.png
new file mode 100644
index 000000000..393df8b38
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_42.png b/app/src/main/res/drawable-nodpi/weather_color_42.png
new file mode 100644
index 000000000..58936279d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_43.png b/app/src/main/res/drawable-nodpi/weather_color_43.png
new file mode 100644
index 000000000..393df8b38
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_44.png b/app/src/main/res/drawable-nodpi/weather_color_44.png
new file mode 100644
index 000000000..a6ad077ff
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_45.png b/app/src/main/res/drawable-nodpi/weather_color_45.png
new file mode 100644
index 000000000..5a6297f3d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_46.png b/app/src/main/res/drawable-nodpi/weather_color_46.png
new file mode 100644
index 000000000..d9c5bf515
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_47.png b/app/src/main/res/drawable-nodpi/weather_color_47.png
new file mode 100644
index 000000000..e8768872c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_5.png b/app/src/main/res/drawable-nodpi/weather_color_5.png
new file mode 100644
index 000000000..e1d2691bb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_6.png b/app/src/main/res/drawable-nodpi/weather_color_6.png
new file mode 100644
index 000000000..e1d2691bb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_7.png b/app/src/main/res/drawable-nodpi/weather_color_7.png
new file mode 100644
index 000000000..58936279d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_8.png b/app/src/main/res/drawable-nodpi/weather_color_8.png
new file mode 100644
index 000000000..05836a51d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_9.png b/app/src/main/res/drawable-nodpi/weather_color_9.png
new file mode 100644
index 000000000..0ab22e9d4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_color_na.png b/app/src/main/res/drawable-nodpi/weather_color_na.png
new file mode 100644
index 000000000..5b8c4ce37
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_color_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_0.png b/app/src/main/res/drawable-nodpi/weather_faded_0.png
new file mode 100644
index 000000000..c82c10efa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_1.png b/app/src/main/res/drawable-nodpi/weather_faded_1.png
new file mode 100644
index 000000000..164118e50
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_10.png b/app/src/main/res/drawable-nodpi/weather_faded_10.png
new file mode 100644
index 000000000..4b2d447fe
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_11.png b/app/src/main/res/drawable-nodpi/weather_faded_11.png
new file mode 100644
index 000000000..f5a1bdb39
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_12.png b/app/src/main/res/drawable-nodpi/weather_faded_12.png
new file mode 100644
index 000000000..812606f7f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_13.png b/app/src/main/res/drawable-nodpi/weather_faded_13.png
new file mode 100644
index 000000000..4c2ef119b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_14.png b/app/src/main/res/drawable-nodpi/weather_faded_14.png
new file mode 100644
index 000000000..d1ba90975
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_15.png b/app/src/main/res/drawable-nodpi/weather_faded_15.png
new file mode 100644
index 000000000..eef24d04c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_16.png b/app/src/main/res/drawable-nodpi/weather_faded_16.png
new file mode 100644
index 000000000..135523f63
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_17.png b/app/src/main/res/drawable-nodpi/weather_faded_17.png
new file mode 100644
index 000000000..85d8fe511
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_18.png b/app/src/main/res/drawable-nodpi/weather_faded_18.png
new file mode 100644
index 000000000..8eff44bbf
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_19.png b/app/src/main/res/drawable-nodpi/weather_faded_19.png
new file mode 100644
index 000000000..7d7f1bf74
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_2.png b/app/src/main/res/drawable-nodpi/weather_faded_2.png
new file mode 100644
index 000000000..c82c10efa
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_20.png b/app/src/main/res/drawable-nodpi/weather_faded_20.png
new file mode 100644
index 000000000..15861b018
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_21.png b/app/src/main/res/drawable-nodpi/weather_faded_21.png
new file mode 100644
index 000000000..7d7f1bf74
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_22.png b/app/src/main/res/drawable-nodpi/weather_faded_22.png
new file mode 100644
index 000000000..15861b018
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_23.png b/app/src/main/res/drawable-nodpi/weather_faded_23.png
new file mode 100644
index 000000000..20300a59a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_24.png b/app/src/main/res/drawable-nodpi/weather_faded_24.png
new file mode 100644
index 000000000..805986374
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_25.png b/app/src/main/res/drawable-nodpi/weather_faded_25.png
new file mode 100644
index 000000000..4c2ef119b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_26.png b/app/src/main/res/drawable-nodpi/weather_faded_26.png
new file mode 100644
index 000000000..6759bccca
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_27.png b/app/src/main/res/drawable-nodpi/weather_faded_27.png
new file mode 100644
index 000000000..1a789a388
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_28.png b/app/src/main/res/drawable-nodpi/weather_faded_28.png
new file mode 100644
index 000000000..8627e12d3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_29.png b/app/src/main/res/drawable-nodpi/weather_faded_29.png
new file mode 100644
index 000000000..7e549a5ad
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_3.png b/app/src/main/res/drawable-nodpi/weather_faded_3.png
new file mode 100644
index 000000000..812606f7f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_30.png b/app/src/main/res/drawable-nodpi/weather_faded_30.png
new file mode 100644
index 000000000..6759bccca
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_31.png b/app/src/main/res/drawable-nodpi/weather_faded_31.png
new file mode 100644
index 000000000..9494dcda4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_32.png b/app/src/main/res/drawable-nodpi/weather_faded_32.png
new file mode 100644
index 000000000..773b5f0f3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_33.png b/app/src/main/res/drawable-nodpi/weather_faded_33.png
new file mode 100644
index 000000000..9494dcda4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_34.png b/app/src/main/res/drawable-nodpi/weather_faded_34.png
new file mode 100644
index 000000000..773b5f0f3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_35.png b/app/src/main/res/drawable-nodpi/weather_faded_35.png
new file mode 100644
index 000000000..eef24d04c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_36.png b/app/src/main/res/drawable-nodpi/weather_faded_36.png
new file mode 100644
index 000000000..773b5f0f3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_37.png b/app/src/main/res/drawable-nodpi/weather_faded_37.png
new file mode 100644
index 000000000..812606f7f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_38.png b/app/src/main/res/drawable-nodpi/weather_faded_38.png
new file mode 100644
index 000000000..812606f7f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_39.png b/app/src/main/res/drawable-nodpi/weather_faded_39.png
new file mode 100644
index 000000000..f5a1bdb39
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_4.png b/app/src/main/res/drawable-nodpi/weather_faded_4.png
new file mode 100644
index 000000000..812606f7f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_40.png b/app/src/main/res/drawable-nodpi/weather_faded_40.png
new file mode 100644
index 000000000..45ddcdfde
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_41.png b/app/src/main/res/drawable-nodpi/weather_faded_41.png
new file mode 100644
index 000000000..d1ba90975
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_42.png b/app/src/main/res/drawable-nodpi/weather_faded_42.png
new file mode 100644
index 000000000..eef24d04c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_43.png b/app/src/main/res/drawable-nodpi/weather_faded_43.png
new file mode 100644
index 000000000..eef24d04c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_44.png b/app/src/main/res/drawable-nodpi/weather_faded_44.png
new file mode 100644
index 000000000..6759bccca
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_45.png b/app/src/main/res/drawable-nodpi/weather_faded_45.png
new file mode 100644
index 000000000..f5a1bdb39
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_46.png b/app/src/main/res/drawable-nodpi/weather_faded_46.png
new file mode 100644
index 000000000..eef24d04c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_47.png b/app/src/main/res/drawable-nodpi/weather_faded_47.png
new file mode 100644
index 000000000..f5a1bdb39
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_5.png b/app/src/main/res/drawable-nodpi/weather_faded_5.png
new file mode 100644
index 000000000..4b2d447fe
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_6.png b/app/src/main/res/drawable-nodpi/weather_faded_6.png
new file mode 100644
index 000000000..d1ba90975
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_7.png b/app/src/main/res/drawable-nodpi/weather_faded_7.png
new file mode 100644
index 000000000..d1ba90975
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_8.png b/app/src/main/res/drawable-nodpi/weather_faded_8.png
new file mode 100644
index 000000000..4b2d447fe
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_9.png b/app/src/main/res/drawable-nodpi/weather_faded_9.png
new file mode 100644
index 000000000..c35b2ef1b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_na.png b/app/src/main/res/drawable-nodpi/weather_faded_na.png
new file mode 100644
index 000000000..42fc5ec60
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_faded_refresh.png b/app/src/main/res/drawable-nodpi/weather_faded_refresh.png
new file mode 100644
index 000000000..42fc5ec60
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_faded_refresh.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_0.png b/app/src/main/res/drawable-nodpi/weather_gnw_0.png
new file mode 100644
index 000000000..f02f7e804
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_1.png b/app/src/main/res/drawable-nodpi/weather_gnw_1.png
new file mode 100644
index 000000000..f02f7e804
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_10.png b/app/src/main/res/drawable-nodpi/weather_gnw_10.png
new file mode 100644
index 000000000..47c193c0a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_11.png b/app/src/main/res/drawable-nodpi/weather_gnw_11.png
new file mode 100644
index 000000000..47c193c0a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_12.png b/app/src/main/res/drawable-nodpi/weather_gnw_12.png
new file mode 100644
index 000000000..47c193c0a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_13.png b/app/src/main/res/drawable-nodpi/weather_gnw_13.png
new file mode 100644
index 000000000..5dee6e473
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_14.png b/app/src/main/res/drawable-nodpi/weather_gnw_14.png
new file mode 100644
index 000000000..5dee6e473
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_15.png b/app/src/main/res/drawable-nodpi/weather_gnw_15.png
new file mode 100644
index 000000000..5dee6e473
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_16.png b/app/src/main/res/drawable-nodpi/weather_gnw_16.png
new file mode 100644
index 000000000..5dee6e473
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_17.png b/app/src/main/res/drawable-nodpi/weather_gnw_17.png
new file mode 100644
index 000000000..47c193c0a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_18.png b/app/src/main/res/drawable-nodpi/weather_gnw_18.png
new file mode 100644
index 000000000..5dee6e473
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_19.png b/app/src/main/res/drawable-nodpi/weather_gnw_19.png
new file mode 100644
index 000000000..8f376f95d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_2.png b/app/src/main/res/drawable-nodpi/weather_gnw_2.png
new file mode 100644
index 000000000..f02f7e804
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_20.png b/app/src/main/res/drawable-nodpi/weather_gnw_20.png
new file mode 100644
index 000000000..9214bba26
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_21.png b/app/src/main/res/drawable-nodpi/weather_gnw_21.png
new file mode 100644
index 000000000..9214bba26
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_22.png b/app/src/main/res/drawable-nodpi/weather_gnw_22.png
new file mode 100644
index 000000000..9214bba26
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_23.png b/app/src/main/res/drawable-nodpi/weather_gnw_23.png
new file mode 100644
index 000000000..89b80e053
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_24.png b/app/src/main/res/drawable-nodpi/weather_gnw_24.png
new file mode 100644
index 000000000..89b80e053
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_25.png b/app/src/main/res/drawable-nodpi/weather_gnw_25.png
new file mode 100644
index 000000000..643773ecd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_26.png b/app/src/main/res/drawable-nodpi/weather_gnw_26.png
new file mode 100644
index 000000000..643773ecd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_27.png b/app/src/main/res/drawable-nodpi/weather_gnw_27.png
new file mode 100644
index 000000000..975374cc8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_28.png b/app/src/main/res/drawable-nodpi/weather_gnw_28.png
new file mode 100644
index 000000000..25c7cdb0b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_29.png b/app/src/main/res/drawable-nodpi/weather_gnw_29.png
new file mode 100644
index 000000000..ccdfef844
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_3.png b/app/src/main/res/drawable-nodpi/weather_gnw_3.png
new file mode 100644
index 000000000..72063b593
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_30.png b/app/src/main/res/drawable-nodpi/weather_gnw_30.png
new file mode 100644
index 000000000..bf28cd9f6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_31.png b/app/src/main/res/drawable-nodpi/weather_gnw_31.png
new file mode 100644
index 000000000..7919e09f8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_32.png b/app/src/main/res/drawable-nodpi/weather_gnw_32.png
new file mode 100644
index 000000000..5eed0551c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_33.png b/app/src/main/res/drawable-nodpi/weather_gnw_33.png
new file mode 100644
index 000000000..7919e09f8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_34.png b/app/src/main/res/drawable-nodpi/weather_gnw_34.png
new file mode 100644
index 000000000..5eed0551c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_35.png b/app/src/main/res/drawable-nodpi/weather_gnw_35.png
new file mode 100644
index 000000000..47c193c0a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_36.png b/app/src/main/res/drawable-nodpi/weather_gnw_36.png
new file mode 100644
index 000000000..5eed0551c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_37.png b/app/src/main/res/drawable-nodpi/weather_gnw_37.png
new file mode 100644
index 000000000..b79c1cff3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_38.png b/app/src/main/res/drawable-nodpi/weather_gnw_38.png
new file mode 100644
index 000000000..b2a4223c1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_39.png b/app/src/main/res/drawable-nodpi/weather_gnw_39.png
new file mode 100644
index 000000000..d69f2e390
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_4.png b/app/src/main/res/drawable-nodpi/weather_gnw_4.png
new file mode 100644
index 000000000..72063b593
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_40.png b/app/src/main/res/drawable-nodpi/weather_gnw_40.png
new file mode 100644
index 000000000..e800fcf3d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_41.png b/app/src/main/res/drawable-nodpi/weather_gnw_41.png
new file mode 100644
index 000000000..5dee6e473
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_42.png b/app/src/main/res/drawable-nodpi/weather_gnw_42.png
new file mode 100644
index 000000000..d46673f20
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_43.png b/app/src/main/res/drawable-nodpi/weather_gnw_43.png
new file mode 100644
index 000000000..5dee6e473
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_44.png b/app/src/main/res/drawable-nodpi/weather_gnw_44.png
new file mode 100644
index 000000000..ccdfef844
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_45.png b/app/src/main/res/drawable-nodpi/weather_gnw_45.png
new file mode 100644
index 000000000..be85d310f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_46.png b/app/src/main/res/drawable-nodpi/weather_gnw_46.png
new file mode 100644
index 000000000..d46673f20
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_47.png b/app/src/main/res/drawable-nodpi/weather_gnw_47.png
new file mode 100644
index 000000000..eaec365b7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_5.png b/app/src/main/res/drawable-nodpi/weather_gnw_5.png
new file mode 100644
index 000000000..e99397d9a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_6.png b/app/src/main/res/drawable-nodpi/weather_gnw_6.png
new file mode 100644
index 000000000..e99397d9a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_7.png b/app/src/main/res/drawable-nodpi/weather_gnw_7.png
new file mode 100644
index 000000000..e99397d9a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_8.png b/app/src/main/res/drawable-nodpi/weather_gnw_8.png
new file mode 100644
index 000000000..47c193c0a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_9.png b/app/src/main/res/drawable-nodpi/weather_gnw_9.png
new file mode 100644
index 000000000..47c193c0a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_na.png b/app/src/main/res/drawable-nodpi/weather_gnw_na.png
new file mode 100644
index 000000000..69d0294d6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gnw_refresh.png b/app/src/main/res/drawable-nodpi/weather_gnw_refresh.png
new file mode 100644
index 000000000..69d0294d6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gnw_refresh.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_0.png b/app/src/main/res/drawable-nodpi/weather_gs6_0.png
new file mode 100644
index 000000000..3f9aaed90
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_1.png b/app/src/main/res/drawable-nodpi/weather_gs6_1.png
new file mode 100644
index 000000000..3f9aaed90
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_10.png b/app/src/main/res/drawable-nodpi/weather_gs6_10.png
new file mode 100644
index 000000000..16da4cf00
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_11.png b/app/src/main/res/drawable-nodpi/weather_gs6_11.png
new file mode 100644
index 000000000..16da4cf00
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_12.png b/app/src/main/res/drawable-nodpi/weather_gs6_12.png
new file mode 100644
index 000000000..16da4cf00
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_13.png b/app/src/main/res/drawable-nodpi/weather_gs6_13.png
new file mode 100644
index 000000000..81b844702
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_14.png b/app/src/main/res/drawable-nodpi/weather_gs6_14.png
new file mode 100644
index 000000000..81b844702
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_15.png b/app/src/main/res/drawable-nodpi/weather_gs6_15.png
new file mode 100644
index 000000000..81b844702
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_16.png b/app/src/main/res/drawable-nodpi/weather_gs6_16.png
new file mode 100644
index 000000000..81b844702
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_17.png b/app/src/main/res/drawable-nodpi/weather_gs6_17.png
new file mode 100644
index 000000000..d60b46c23
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_18.png b/app/src/main/res/drawable-nodpi/weather_gs6_18.png
new file mode 100644
index 000000000..d60b46c23
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_19.png b/app/src/main/res/drawable-nodpi/weather_gs6_19.png
new file mode 100644
index 000000000..3f9aaed90
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_2.png b/app/src/main/res/drawable-nodpi/weather_gs6_2.png
new file mode 100644
index 000000000..3f9aaed90
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_20.png b/app/src/main/res/drawable-nodpi/weather_gs6_20.png
new file mode 100644
index 000000000..0516f020b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_21.png b/app/src/main/res/drawable-nodpi/weather_gs6_21.png
new file mode 100644
index 000000000..f72ed9f1b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_22.png b/app/src/main/res/drawable-nodpi/weather_gs6_22.png
new file mode 100644
index 000000000..89d1624a7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_23.png b/app/src/main/res/drawable-nodpi/weather_gs6_23.png
new file mode 100644
index 000000000..3f9aaed90
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_24.png b/app/src/main/res/drawable-nodpi/weather_gs6_24.png
new file mode 100644
index 000000000..3f9aaed90
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_25.png b/app/src/main/res/drawable-nodpi/weather_gs6_25.png
new file mode 100644
index 000000000..cfa73747d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_26.png b/app/src/main/res/drawable-nodpi/weather_gs6_26.png
new file mode 100644
index 000000000..0516f020b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_27.png b/app/src/main/res/drawable-nodpi/weather_gs6_27.png
new file mode 100644
index 000000000..15a7222ee
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_28.png b/app/src/main/res/drawable-nodpi/weather_gs6_28.png
new file mode 100644
index 000000000..f72ed9f1b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_29.png b/app/src/main/res/drawable-nodpi/weather_gs6_29.png
new file mode 100644
index 000000000..15a7222ee
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_3.png b/app/src/main/res/drawable-nodpi/weather_gs6_3.png
new file mode 100644
index 000000000..cadc03f84
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_30.png b/app/src/main/res/drawable-nodpi/weather_gs6_30.png
new file mode 100644
index 000000000..f72ed9f1b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_31.png b/app/src/main/res/drawable-nodpi/weather_gs6_31.png
new file mode 100644
index 000000000..9268f5c05
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_32.png b/app/src/main/res/drawable-nodpi/weather_gs6_32.png
new file mode 100644
index 000000000..542a58694
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_33.png b/app/src/main/res/drawable-nodpi/weather_gs6_33.png
new file mode 100644
index 000000000..9268f5c05
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_34.png b/app/src/main/res/drawable-nodpi/weather_gs6_34.png
new file mode 100644
index 000000000..542a58694
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_35.png b/app/src/main/res/drawable-nodpi/weather_gs6_35.png
new file mode 100644
index 000000000..8e887a02c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_36.png b/app/src/main/res/drawable-nodpi/weather_gs6_36.png
new file mode 100644
index 000000000..6299e7f50
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_37.png b/app/src/main/res/drawable-nodpi/weather_gs6_37.png
new file mode 100644
index 000000000..d8ad4b462
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_38.png b/app/src/main/res/drawable-nodpi/weather_gs6_38.png
new file mode 100644
index 000000000..d8ad4b462
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_39.png b/app/src/main/res/drawable-nodpi/weather_gs6_39.png
new file mode 100644
index 000000000..d8ad4b462
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_4.png b/app/src/main/res/drawable-nodpi/weather_gs6_4.png
new file mode 100644
index 000000000..cadc03f84
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_40.png b/app/src/main/res/drawable-nodpi/weather_gs6_40.png
new file mode 100644
index 000000000..1140c2465
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_41.png b/app/src/main/res/drawable-nodpi/weather_gs6_41.png
new file mode 100644
index 000000000..81b844702
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_42.png b/app/src/main/res/drawable-nodpi/weather_gs6_42.png
new file mode 100644
index 000000000..81b844702
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_43.png b/app/src/main/res/drawable-nodpi/weather_gs6_43.png
new file mode 100644
index 000000000..81b844702
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_44.png b/app/src/main/res/drawable-nodpi/weather_gs6_44.png
new file mode 100644
index 000000000..15a7222ee
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_45.png b/app/src/main/res/drawable-nodpi/weather_gs6_45.png
new file mode 100644
index 000000000..cadc03f84
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_46.png b/app/src/main/res/drawable-nodpi/weather_gs6_46.png
new file mode 100644
index 000000000..81b844702
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_47.png b/app/src/main/res/drawable-nodpi/weather_gs6_47.png
new file mode 100644
index 000000000..cadc03f84
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_5.png b/app/src/main/res/drawable-nodpi/weather_gs6_5.png
new file mode 100644
index 000000000..cbcc679d1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_6.png b/app/src/main/res/drawable-nodpi/weather_gs6_6.png
new file mode 100644
index 000000000..cbcc679d1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_7.png b/app/src/main/res/drawable-nodpi/weather_gs6_7.png
new file mode 100644
index 000000000..cbcc679d1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_8.png b/app/src/main/res/drawable-nodpi/weather_gs6_8.png
new file mode 100644
index 000000000..8e887a02c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_9.png b/app/src/main/res/drawable-nodpi/weather_gs6_9.png
new file mode 100644
index 000000000..8e887a02c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_na.png b/app/src/main/res/drawable-nodpi/weather_gs6_na.png
new file mode 100644
index 000000000..349f373b8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_gs6_refresh.png b/app/src/main/res/drawable-nodpi/weather_gs6_refresh.png
new file mode 100644
index 000000000..a308e7dd2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_gs6_refresh.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_0.png b/app/src/main/res/drawable-nodpi/weather_magical_0.png
new file mode 100644
index 000000000..9353f9b85
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_1.png b/app/src/main/res/drawable-nodpi/weather_magical_1.png
new file mode 100644
index 000000000..47e5345c9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_10.png b/app/src/main/res/drawable-nodpi/weather_magical_10.png
new file mode 100644
index 000000000..595d2863d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_11.png b/app/src/main/res/drawable-nodpi/weather_magical_11.png
new file mode 100644
index 000000000..042a6bd6d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_12.png b/app/src/main/res/drawable-nodpi/weather_magical_12.png
new file mode 100644
index 000000000..042a6bd6d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_13.png b/app/src/main/res/drawable-nodpi/weather_magical_13.png
new file mode 100644
index 000000000..6101bd1dd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_14.png b/app/src/main/res/drawable-nodpi/weather_magical_14.png
new file mode 100644
index 000000000..595d2863d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_15.png b/app/src/main/res/drawable-nodpi/weather_magical_15.png
new file mode 100644
index 000000000..6101bd1dd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_16.png b/app/src/main/res/drawable-nodpi/weather_magical_16.png
new file mode 100644
index 000000000..6101bd1dd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_17.png b/app/src/main/res/drawable-nodpi/weather_magical_17.png
new file mode 100644
index 000000000..467927eef
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_18.png b/app/src/main/res/drawable-nodpi/weather_magical_18.png
new file mode 100644
index 000000000..595d2863d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_19.png b/app/src/main/res/drawable-nodpi/weather_magical_19.png
new file mode 100644
index 000000000..3c46af9e5
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_2.png b/app/src/main/res/drawable-nodpi/weather_magical_2.png
new file mode 100644
index 000000000..47e5345c9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_20.png b/app/src/main/res/drawable-nodpi/weather_magical_20.png
new file mode 100644
index 000000000..3c46af9e5
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_21.png b/app/src/main/res/drawable-nodpi/weather_magical_21.png
new file mode 100644
index 000000000..3c46af9e5
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_22.png b/app/src/main/res/drawable-nodpi/weather_magical_22.png
new file mode 100644
index 000000000..742a48581
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_23.png b/app/src/main/res/drawable-nodpi/weather_magical_23.png
new file mode 100644
index 000000000..79d1b993a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_24.png b/app/src/main/res/drawable-nodpi/weather_magical_24.png
new file mode 100644
index 000000000..79d1b993a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_25.png b/app/src/main/res/drawable-nodpi/weather_magical_25.png
new file mode 100644
index 000000000..7c8d100ba
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_26.png b/app/src/main/res/drawable-nodpi/weather_magical_26.png
new file mode 100644
index 000000000..dfcf73615
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_27.png b/app/src/main/res/drawable-nodpi/weather_magical_27.png
new file mode 100644
index 000000000..62830cebb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_28.png b/app/src/main/res/drawable-nodpi/weather_magical_28.png
new file mode 100644
index 000000000..0fb3fe38e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_29.png b/app/src/main/res/drawable-nodpi/weather_magical_29.png
new file mode 100644
index 000000000..f20fb8744
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_3.png b/app/src/main/res/drawable-nodpi/weather_magical_3.png
new file mode 100644
index 000000000..47e5345c9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_30.png b/app/src/main/res/drawable-nodpi/weather_magical_30.png
new file mode 100644
index 000000000..3b9e9df78
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_31.png b/app/src/main/res/drawable-nodpi/weather_magical_31.png
new file mode 100644
index 000000000..5bca0a014
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_32.png b/app/src/main/res/drawable-nodpi/weather_magical_32.png
new file mode 100644
index 000000000..39f2007f6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_33.png b/app/src/main/res/drawable-nodpi/weather_magical_33.png
new file mode 100644
index 000000000..a8a06d759
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_34.png b/app/src/main/res/drawable-nodpi/weather_magical_34.png
new file mode 100644
index 000000000..97151f0d5
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_35.png b/app/src/main/res/drawable-nodpi/weather_magical_35.png
new file mode 100644
index 000000000..33763f8c8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_36.png b/app/src/main/res/drawable-nodpi/weather_magical_36.png
new file mode 100644
index 000000000..5af988cde
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_37.png b/app/src/main/res/drawable-nodpi/weather_magical_37.png
new file mode 100644
index 000000000..ae277929c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_38.png b/app/src/main/res/drawable-nodpi/weather_magical_38.png
new file mode 100644
index 000000000..44344e4cb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_39.png b/app/src/main/res/drawable-nodpi/weather_magical_39.png
new file mode 100644
index 000000000..44344e4cb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_4.png b/app/src/main/res/drawable-nodpi/weather_magical_4.png
new file mode 100644
index 000000000..47e5345c9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_40.png b/app/src/main/res/drawable-nodpi/weather_magical_40.png
new file mode 100644
index 000000000..10a3729c6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_41.png b/app/src/main/res/drawable-nodpi/weather_magical_41.png
new file mode 100644
index 000000000..6101bd1dd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_42.png b/app/src/main/res/drawable-nodpi/weather_magical_42.png
new file mode 100644
index 000000000..6101bd1dd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_43.png b/app/src/main/res/drawable-nodpi/weather_magical_43.png
new file mode 100644
index 000000000..0574cf30c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_44.png b/app/src/main/res/drawable-nodpi/weather_magical_44.png
new file mode 100644
index 000000000..62830cebb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_45.png b/app/src/main/res/drawable-nodpi/weather_magical_45.png
new file mode 100644
index 000000000..2b6fe7f6e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_46.png b/app/src/main/res/drawable-nodpi/weather_magical_46.png
new file mode 100644
index 000000000..903edaf35
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_47.png b/app/src/main/res/drawable-nodpi/weather_magical_47.png
new file mode 100644
index 000000000..ae114573e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_5.png b/app/src/main/res/drawable-nodpi/weather_magical_5.png
new file mode 100644
index 000000000..595d2863d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_6.png b/app/src/main/res/drawable-nodpi/weather_magical_6.png
new file mode 100644
index 000000000..595d2863d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_7.png b/app/src/main/res/drawable-nodpi/weather_magical_7.png
new file mode 100644
index 000000000..6101bd1dd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_8.png b/app/src/main/res/drawable-nodpi/weather_magical_8.png
new file mode 100644
index 000000000..10a3729c6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_9.png b/app/src/main/res/drawable-nodpi/weather_magical_9.png
new file mode 100644
index 000000000..5339ab977
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_magical_na.png b/app/src/main/res/drawable-nodpi/weather_magical_na.png
new file mode 100644
index 000000000..b5e542d41
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_magical_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_0.png b/app/src/main/res/drawable-nodpi/weather_miui_0.png
new file mode 100644
index 000000000..a4a3b8dc1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_1.png b/app/src/main/res/drawable-nodpi/weather_miui_1.png
new file mode 100644
index 000000000..a4a3b8dc1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_10.png b/app/src/main/res/drawable-nodpi/weather_miui_10.png
new file mode 100644
index 000000000..e3f443ceb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_11.png b/app/src/main/res/drawable-nodpi/weather_miui_11.png
new file mode 100644
index 000000000..e23f49273
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_12.png b/app/src/main/res/drawable-nodpi/weather_miui_12.png
new file mode 100644
index 000000000..e23f49273
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_13.png b/app/src/main/res/drawable-nodpi/weather_miui_13.png
new file mode 100644
index 000000000..c2216a62a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_14.png b/app/src/main/res/drawable-nodpi/weather_miui_14.png
new file mode 100644
index 000000000..e3f443ceb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_15.png b/app/src/main/res/drawable-nodpi/weather_miui_15.png
new file mode 100644
index 000000000..c2216a62a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_16.png b/app/src/main/res/drawable-nodpi/weather_miui_16.png
new file mode 100644
index 000000000..c2216a62a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_17.png b/app/src/main/res/drawable-nodpi/weather_miui_17.png
new file mode 100644
index 000000000..e23f49273
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_18.png b/app/src/main/res/drawable-nodpi/weather_miui_18.png
new file mode 100644
index 000000000..e3f443ceb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_19.png b/app/src/main/res/drawable-nodpi/weather_miui_19.png
new file mode 100644
index 000000000..0c6f985b8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_2.png b/app/src/main/res/drawable-nodpi/weather_miui_2.png
new file mode 100644
index 000000000..a4a3b8dc1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_20.png b/app/src/main/res/drawable-nodpi/weather_miui_20.png
new file mode 100644
index 000000000..b02eb24b9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_21.png b/app/src/main/res/drawable-nodpi/weather_miui_21.png
new file mode 100644
index 000000000..b02eb24b9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_22.png b/app/src/main/res/drawable-nodpi/weather_miui_22.png
new file mode 100644
index 000000000..0c6f985b8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_23.png b/app/src/main/res/drawable-nodpi/weather_miui_23.png
new file mode 100644
index 000000000..0c6f985b8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_24.png b/app/src/main/res/drawable-nodpi/weather_miui_24.png
new file mode 100644
index 000000000..90e7f063b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_25.png b/app/src/main/res/drawable-nodpi/weather_miui_25.png
new file mode 100644
index 000000000..0c6f985b8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_26.png b/app/src/main/res/drawable-nodpi/weather_miui_26.png
new file mode 100644
index 000000000..90e7f063b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_27.png b/app/src/main/res/drawable-nodpi/weather_miui_27.png
new file mode 100644
index 000000000..2e4ec962b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_28.png b/app/src/main/res/drawable-nodpi/weather_miui_28.png
new file mode 100644
index 000000000..a20e6b730
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_29.png b/app/src/main/res/drawable-nodpi/weather_miui_29.png
new file mode 100644
index 000000000..114d37cb5
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_3.png b/app/src/main/res/drawable-nodpi/weather_miui_3.png
new file mode 100644
index 000000000..a4a3b8dc1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_30.png b/app/src/main/res/drawable-nodpi/weather_miui_30.png
new file mode 100644
index 000000000..5adc15bf5
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_31.png b/app/src/main/res/drawable-nodpi/weather_miui_31.png
new file mode 100644
index 000000000..fa5d8ab2c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_32.png b/app/src/main/res/drawable-nodpi/weather_miui_32.png
new file mode 100644
index 000000000..d483024cc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_33.png b/app/src/main/res/drawable-nodpi/weather_miui_33.png
new file mode 100644
index 000000000..fa5d8ab2c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_34.png b/app/src/main/res/drawable-nodpi/weather_miui_34.png
new file mode 100644
index 000000000..d483024cc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_35.png b/app/src/main/res/drawable-nodpi/weather_miui_35.png
new file mode 100644
index 000000000..e3f443ceb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_36.png b/app/src/main/res/drawable-nodpi/weather_miui_36.png
new file mode 100644
index 000000000..d483024cc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_37.png b/app/src/main/res/drawable-nodpi/weather_miui_37.png
new file mode 100644
index 000000000..79a60a761
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_38.png b/app/src/main/res/drawable-nodpi/weather_miui_38.png
new file mode 100644
index 000000000..79a60a761
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_39.png b/app/src/main/res/drawable-nodpi/weather_miui_39.png
new file mode 100644
index 000000000..79a60a761
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_4.png b/app/src/main/res/drawable-nodpi/weather_miui_4.png
new file mode 100644
index 000000000..a4a3b8dc1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_40.png b/app/src/main/res/drawable-nodpi/weather_miui_40.png
new file mode 100644
index 000000000..fb2a6b0bb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_41.png b/app/src/main/res/drawable-nodpi/weather_miui_41.png
new file mode 100644
index 000000000..c2216a62a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_42.png b/app/src/main/res/drawable-nodpi/weather_miui_42.png
new file mode 100644
index 000000000..c2216a62a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_43.png b/app/src/main/res/drawable-nodpi/weather_miui_43.png
new file mode 100644
index 000000000..c2216a62a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_44.png b/app/src/main/res/drawable-nodpi/weather_miui_44.png
new file mode 100644
index 000000000..90e7f063b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_45.png b/app/src/main/res/drawable-nodpi/weather_miui_45.png
new file mode 100644
index 000000000..7705b64cf
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_46.png b/app/src/main/res/drawable-nodpi/weather_miui_46.png
new file mode 100644
index 000000000..c2216a62a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_47.png b/app/src/main/res/drawable-nodpi/weather_miui_47.png
new file mode 100644
index 000000000..33b8d723e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_5.png b/app/src/main/res/drawable-nodpi/weather_miui_5.png
new file mode 100644
index 000000000..e3f443ceb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_6.png b/app/src/main/res/drawable-nodpi/weather_miui_6.png
new file mode 100644
index 000000000..e3f443ceb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_7.png b/app/src/main/res/drawable-nodpi/weather_miui_7.png
new file mode 100644
index 000000000..c2216a62a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_8.png b/app/src/main/res/drawable-nodpi/weather_miui_8.png
new file mode 100644
index 000000000..e3f443ceb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_9.png b/app/src/main/res/drawable-nodpi/weather_miui_9.png
new file mode 100644
index 000000000..083b91b0f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_miui_na.png b/app/src/main/res/drawable-nodpi/weather_miui_na.png
new file mode 100644
index 000000000..d4aea19c3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_miui_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_0.png b/app/src/main/res/drawable-nodpi/weather_sthul_0.png
new file mode 100644
index 000000000..95038f34b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_1.png b/app/src/main/res/drawable-nodpi/weather_sthul_1.png
new file mode 100644
index 000000000..3cae4ce5f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_10.png b/app/src/main/res/drawable-nodpi/weather_sthul_10.png
new file mode 100644
index 000000000..45b819359
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_11.png b/app/src/main/res/drawable-nodpi/weather_sthul_11.png
new file mode 100644
index 000000000..f7a6f0fe3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_12.png b/app/src/main/res/drawable-nodpi/weather_sthul_12.png
new file mode 100644
index 000000000..8615555bb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_13.png b/app/src/main/res/drawable-nodpi/weather_sthul_13.png
new file mode 100644
index 000000000..9dfad0dd1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_14.png b/app/src/main/res/drawable-nodpi/weather_sthul_14.png
new file mode 100644
index 000000000..21572fbbd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_15.png b/app/src/main/res/drawable-nodpi/weather_sthul_15.png
new file mode 100644
index 000000000..672239ba4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_16.png b/app/src/main/res/drawable-nodpi/weather_sthul_16.png
new file mode 100644
index 000000000..b9212816e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_17.png b/app/src/main/res/drawable-nodpi/weather_sthul_17.png
new file mode 100644
index 000000000..872cddb20
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_18.png b/app/src/main/res/drawable-nodpi/weather_sthul_18.png
new file mode 100644
index 000000000..36f52825e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_19.png b/app/src/main/res/drawable-nodpi/weather_sthul_19.png
new file mode 100644
index 000000000..002c9ace5
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_2.png b/app/src/main/res/drawable-nodpi/weather_sthul_2.png
new file mode 100644
index 000000000..800ade9b4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_20.png b/app/src/main/res/drawable-nodpi/weather_sthul_20.png
new file mode 100644
index 000000000..e30db16d7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_21.png b/app/src/main/res/drawable-nodpi/weather_sthul_21.png
new file mode 100644
index 000000000..0f2e3dcd6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_22.png b/app/src/main/res/drawable-nodpi/weather_sthul_22.png
new file mode 100644
index 000000000..352dfedc5
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_23.png b/app/src/main/res/drawable-nodpi/weather_sthul_23.png
new file mode 100644
index 000000000..87f063f59
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_24.png b/app/src/main/res/drawable-nodpi/weather_sthul_24.png
new file mode 100644
index 000000000..0268c2bf2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_25.png b/app/src/main/res/drawable-nodpi/weather_sthul_25.png
new file mode 100644
index 000000000..1b8b153a3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_26.png b/app/src/main/res/drawable-nodpi/weather_sthul_26.png
new file mode 100644
index 000000000..742bd0a62
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_27.png b/app/src/main/res/drawable-nodpi/weather_sthul_27.png
new file mode 100644
index 000000000..d63e230c9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_28.png b/app/src/main/res/drawable-nodpi/weather_sthul_28.png
new file mode 100644
index 000000000..ee9dde697
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_29.png b/app/src/main/res/drawable-nodpi/weather_sthul_29.png
new file mode 100644
index 000000000..bf2690897
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_3.png b/app/src/main/res/drawable-nodpi/weather_sthul_3.png
new file mode 100644
index 000000000..54fb8d6fb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_30.png b/app/src/main/res/drawable-nodpi/weather_sthul_30.png
new file mode 100644
index 000000000..730d99ce9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_31.png b/app/src/main/res/drawable-nodpi/weather_sthul_31.png
new file mode 100644
index 000000000..942bb0f46
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_32.png b/app/src/main/res/drawable-nodpi/weather_sthul_32.png
new file mode 100644
index 000000000..bc7ffa91a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_33.png b/app/src/main/res/drawable-nodpi/weather_sthul_33.png
new file mode 100644
index 000000000..2bcdb8861
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_34.png b/app/src/main/res/drawable-nodpi/weather_sthul_34.png
new file mode 100644
index 000000000..9515fe6cd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_35.png b/app/src/main/res/drawable-nodpi/weather_sthul_35.png
new file mode 100644
index 000000000..45230ff81
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_36.png b/app/src/main/res/drawable-nodpi/weather_sthul_36.png
new file mode 100644
index 000000000..a551e8eb3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_37.png b/app/src/main/res/drawable-nodpi/weather_sthul_37.png
new file mode 100644
index 000000000..16dff2136
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_38.png b/app/src/main/res/drawable-nodpi/weather_sthul_38.png
new file mode 100644
index 000000000..f617b46a6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_39.png b/app/src/main/res/drawable-nodpi/weather_sthul_39.png
new file mode 100644
index 000000000..e3ff84e4f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_4.png b/app/src/main/res/drawable-nodpi/weather_sthul_4.png
new file mode 100644
index 000000000..45d41d3c4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_40.png b/app/src/main/res/drawable-nodpi/weather_sthul_40.png
new file mode 100644
index 000000000..e5b8a9c92
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_41.png b/app/src/main/res/drawable-nodpi/weather_sthul_41.png
new file mode 100644
index 000000000..f50aee9fd
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_42.png b/app/src/main/res/drawable-nodpi/weather_sthul_42.png
new file mode 100644
index 000000000..e9665a255
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_43.png b/app/src/main/res/drawable-nodpi/weather_sthul_43.png
new file mode 100644
index 000000000..8f7b400ab
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_44.png b/app/src/main/res/drawable-nodpi/weather_sthul_44.png
new file mode 100644
index 000000000..43f86dc0e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_45.png b/app/src/main/res/drawable-nodpi/weather_sthul_45.png
new file mode 100644
index 000000000..35dac640e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_46.png b/app/src/main/res/drawable-nodpi/weather_sthul_46.png
new file mode 100644
index 000000000..ec11ba511
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_47.png b/app/src/main/res/drawable-nodpi/weather_sthul_47.png
new file mode 100644
index 000000000..e662fecb1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_5.png b/app/src/main/res/drawable-nodpi/weather_sthul_5.png
new file mode 100644
index 000000000..7dbec8c62
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_6.png b/app/src/main/res/drawable-nodpi/weather_sthul_6.png
new file mode 100644
index 000000000..ee0961d59
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_7.png b/app/src/main/res/drawable-nodpi/weather_sthul_7.png
new file mode 100644
index 000000000..e313b7ef2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_8.png b/app/src/main/res/drawable-nodpi/weather_sthul_8.png
new file mode 100644
index 000000000..56b2e45e4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_9.png b/app/src/main/res/drawable-nodpi/weather_sthul_9.png
new file mode 100644
index 000000000..2853ac1bc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_sthul_na.png b/app/src/main/res/drawable-nodpi/weather_sthul_na.png
new file mode 100644
index 000000000..0724949e6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_sthul_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_0.png b/app/src/main/res/drawable-nodpi/weather_tapas_0.png
new file mode 100644
index 000000000..29785012a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_1.png b/app/src/main/res/drawable-nodpi/weather_tapas_1.png
new file mode 100644
index 000000000..af4dd7026
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_10.png b/app/src/main/res/drawable-nodpi/weather_tapas_10.png
new file mode 100644
index 000000000..707d6435e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_11.png b/app/src/main/res/drawable-nodpi/weather_tapas_11.png
new file mode 100644
index 000000000..5e461f2c3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_12.png b/app/src/main/res/drawable-nodpi/weather_tapas_12.png
new file mode 100644
index 000000000..5e461f2c3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_13.png b/app/src/main/res/drawable-nodpi/weather_tapas_13.png
new file mode 100644
index 000000000..6690be984
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_14.png b/app/src/main/res/drawable-nodpi/weather_tapas_14.png
new file mode 100644
index 000000000..6690be984
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_15.png b/app/src/main/res/drawable-nodpi/weather_tapas_15.png
new file mode 100644
index 000000000..f545f6ff6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_16.png b/app/src/main/res/drawable-nodpi/weather_tapas_16.png
new file mode 100644
index 000000000..0923262b4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_17.png b/app/src/main/res/drawable-nodpi/weather_tapas_17.png
new file mode 100644
index 000000000..ec73390bb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_18.png b/app/src/main/res/drawable-nodpi/weather_tapas_18.png
new file mode 100644
index 000000000..975737fc8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_19.png b/app/src/main/res/drawable-nodpi/weather_tapas_19.png
new file mode 100644
index 000000000..83b9392b2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_2.png b/app/src/main/res/drawable-nodpi/weather_tapas_2.png
new file mode 100644
index 000000000..af4dd7026
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_20.png b/app/src/main/res/drawable-nodpi/weather_tapas_20.png
new file mode 100644
index 000000000..3d1b2cd28
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_21.png b/app/src/main/res/drawable-nodpi/weather_tapas_21.png
new file mode 100644
index 000000000..fb9231e8b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_22.png b/app/src/main/res/drawable-nodpi/weather_tapas_22.png
new file mode 100644
index 000000000..6caad39d3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_23.png b/app/src/main/res/drawable-nodpi/weather_tapas_23.png
new file mode 100644
index 000000000..8c0d933db
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_24.png b/app/src/main/res/drawable-nodpi/weather_tapas_24.png
new file mode 100644
index 000000000..d5eed6102
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_25.png b/app/src/main/res/drawable-nodpi/weather_tapas_25.png
new file mode 100644
index 000000000..bae092f49
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_26.png b/app/src/main/res/drawable-nodpi/weather_tapas_26.png
new file mode 100644
index 000000000..de86f4c20
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_27.png b/app/src/main/res/drawable-nodpi/weather_tapas_27.png
new file mode 100644
index 000000000..b41e0ade0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_28.png b/app/src/main/res/drawable-nodpi/weather_tapas_28.png
new file mode 100644
index 000000000..2214b5e0d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_29.png b/app/src/main/res/drawable-nodpi/weather_tapas_29.png
new file mode 100644
index 000000000..7e4c26755
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_3.png b/app/src/main/res/drawable-nodpi/weather_tapas_3.png
new file mode 100644
index 000000000..8274abc30
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_30.png b/app/src/main/res/drawable-nodpi/weather_tapas_30.png
new file mode 100644
index 000000000..5bb554c87
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_31.png b/app/src/main/res/drawable-nodpi/weather_tapas_31.png
new file mode 100644
index 000000000..ae95f2d38
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_32.png b/app/src/main/res/drawable-nodpi/weather_tapas_32.png
new file mode 100644
index 000000000..4382ec6e3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_33.png b/app/src/main/res/drawable-nodpi/weather_tapas_33.png
new file mode 100644
index 000000000..ae95f2d38
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_34.png b/app/src/main/res/drawable-nodpi/weather_tapas_34.png
new file mode 100644
index 000000000..4382ec6e3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_35.png b/app/src/main/res/drawable-nodpi/weather_tapas_35.png
new file mode 100644
index 000000000..eef9340c9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_36.png b/app/src/main/res/drawable-nodpi/weather_tapas_36.png
new file mode 100644
index 000000000..a9978850d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_37.png b/app/src/main/res/drawable-nodpi/weather_tapas_37.png
new file mode 100644
index 000000000..4d5ee0a3d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_38.png b/app/src/main/res/drawable-nodpi/weather_tapas_38.png
new file mode 100644
index 000000000..4d5ee0a3d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_39.png b/app/src/main/res/drawable-nodpi/weather_tapas_39.png
new file mode 100644
index 000000000..4d5ee0a3d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_4.png b/app/src/main/res/drawable-nodpi/weather_tapas_4.png
new file mode 100644
index 000000000..8274abc30
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_40.png b/app/src/main/res/drawable-nodpi/weather_tapas_40.png
new file mode 100644
index 000000000..c6acf94b2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_41.png b/app/src/main/res/drawable-nodpi/weather_tapas_41.png
new file mode 100644
index 000000000..552649d0e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_42.png b/app/src/main/res/drawable-nodpi/weather_tapas_42.png
new file mode 100644
index 000000000..10e13783c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_43.png b/app/src/main/res/drawable-nodpi/weather_tapas_43.png
new file mode 100644
index 000000000..7b9eb4cb0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_44.png b/app/src/main/res/drawable-nodpi/weather_tapas_44.png
new file mode 100644
index 000000000..35052c122
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_45.png b/app/src/main/res/drawable-nodpi/weather_tapas_45.png
new file mode 100644
index 000000000..b47abc71b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_46.png b/app/src/main/res/drawable-nodpi/weather_tapas_46.png
new file mode 100644
index 000000000..617978631
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_tapas_47.png b/app/src/main/res/drawable-nodpi/weather_tapas_47.png
new file mode 100644
index 000000000..6b8b85567
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_tapas_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_0.png b/app/src/main/res/drawable-nodpi/weather_vclouds_0.png
new file mode 100644
index 000000000..bdd8df6b0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_1.png b/app/src/main/res/drawable-nodpi/weather_vclouds_1.png
new file mode 100644
index 000000000..bdd8df6b0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_10.png b/app/src/main/res/drawable-nodpi/weather_vclouds_10.png
new file mode 100644
index 000000000..3bafd9be8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_11.png b/app/src/main/res/drawable-nodpi/weather_vclouds_11.png
new file mode 100644
index 000000000..e397372f8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_12.png b/app/src/main/res/drawable-nodpi/weather_vclouds_12.png
new file mode 100644
index 000000000..99c362b9b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_13.png b/app/src/main/res/drawable-nodpi/weather_vclouds_13.png
new file mode 100644
index 000000000..53390671f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_14.png b/app/src/main/res/drawable-nodpi/weather_vclouds_14.png
new file mode 100644
index 000000000..e9ce659f1
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_15.png b/app/src/main/res/drawable-nodpi/weather_vclouds_15.png
new file mode 100644
index 000000000..7a02bca3a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_16.png b/app/src/main/res/drawable-nodpi/weather_vclouds_16.png
new file mode 100644
index 000000000..85171e713
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_17.png b/app/src/main/res/drawable-nodpi/weather_vclouds_17.png
new file mode 100644
index 000000000..bdd8df6b0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_18.png b/app/src/main/res/drawable-nodpi/weather_vclouds_18.png
new file mode 100644
index 000000000..1e140bbd0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_19.png b/app/src/main/res/drawable-nodpi/weather_vclouds_19.png
new file mode 100644
index 000000000..3b010d534
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_2.png b/app/src/main/res/drawable-nodpi/weather_vclouds_2.png
new file mode 100644
index 000000000..bdd8df6b0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_20.png b/app/src/main/res/drawable-nodpi/weather_vclouds_20.png
new file mode 100644
index 000000000..419fdf057
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_21.png b/app/src/main/res/drawable-nodpi/weather_vclouds_21.png
new file mode 100644
index 000000000..677c7d472
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_22.png b/app/src/main/res/drawable-nodpi/weather_vclouds_22.png
new file mode 100644
index 000000000..f132bd314
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_23.png b/app/src/main/res/drawable-nodpi/weather_vclouds_23.png
new file mode 100644
index 000000000..c3f8771d7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_24.png b/app/src/main/res/drawable-nodpi/weather_vclouds_24.png
new file mode 100644
index 000000000..c3f8771d7
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_25.png b/app/src/main/res/drawable-nodpi/weather_vclouds_25.png
new file mode 100644
index 000000000..8e55ccd4c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_26.png b/app/src/main/res/drawable-nodpi/weather_vclouds_26.png
new file mode 100644
index 000000000..6c7b14fea
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_27.png b/app/src/main/res/drawable-nodpi/weather_vclouds_27.png
new file mode 100644
index 000000000..0e7ef6ce9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_28.png b/app/src/main/res/drawable-nodpi/weather_vclouds_28.png
new file mode 100644
index 000000000..7e5419c06
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_29.png b/app/src/main/res/drawable-nodpi/weather_vclouds_29.png
new file mode 100644
index 000000000..9d6d56b95
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_3.png b/app/src/main/res/drawable-nodpi/weather_vclouds_3.png
new file mode 100644
index 000000000..bdd8df6b0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_30.png b/app/src/main/res/drawable-nodpi/weather_vclouds_30.png
new file mode 100644
index 000000000..90d642d4c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_31.png b/app/src/main/res/drawable-nodpi/weather_vclouds_31.png
new file mode 100644
index 000000000..b73db1bf4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_32.png b/app/src/main/res/drawable-nodpi/weather_vclouds_32.png
new file mode 100644
index 000000000..ed5f305a9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_33.png b/app/src/main/res/drawable-nodpi/weather_vclouds_33.png
new file mode 100644
index 000000000..3f3eed56e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_34.png b/app/src/main/res/drawable-nodpi/weather_vclouds_34.png
new file mode 100644
index 000000000..ca3e7a920
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_35.png b/app/src/main/res/drawable-nodpi/weather_vclouds_35.png
new file mode 100644
index 000000000..bdd8df6b0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_36.png b/app/src/main/res/drawable-nodpi/weather_vclouds_36.png
new file mode 100644
index 000000000..59bd2208c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_37.png b/app/src/main/res/drawable-nodpi/weather_vclouds_37.png
new file mode 100644
index 000000000..7265d4e08
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_38.png b/app/src/main/res/drawable-nodpi/weather_vclouds_38.png
new file mode 100644
index 000000000..7265d4e08
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_39.png b/app/src/main/res/drawable-nodpi/weather_vclouds_39.png
new file mode 100644
index 000000000..de5fe9a14
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_4.png b/app/src/main/res/drawable-nodpi/weather_vclouds_4.png
new file mode 100644
index 000000000..bdd8df6b0
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_40.png b/app/src/main/res/drawable-nodpi/weather_vclouds_40.png
new file mode 100644
index 000000000..99c362b9b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_41.png b/app/src/main/res/drawable-nodpi/weather_vclouds_41.png
new file mode 100644
index 000000000..507464795
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_42.png b/app/src/main/res/drawable-nodpi/weather_vclouds_42.png
new file mode 100644
index 000000000..85171e713
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_43.png b/app/src/main/res/drawable-nodpi/weather_vclouds_43.png
new file mode 100644
index 000000000..7a02bca3a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_44.png b/app/src/main/res/drawable-nodpi/weather_vclouds_44.png
new file mode 100644
index 000000000..679a79be8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_45.png b/app/src/main/res/drawable-nodpi/weather_vclouds_45.png
new file mode 100644
index 000000000..345518fb6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_46.png b/app/src/main/res/drawable-nodpi/weather_vclouds_46.png
new file mode 100644
index 000000000..9be4bade2
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_47.png b/app/src/main/res/drawable-nodpi/weather_vclouds_47.png
new file mode 100644
index 000000000..bc896c4fc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_5.png b/app/src/main/res/drawable-nodpi/weather_vclouds_5.png
new file mode 100644
index 000000000..f6608f0d3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_6.png b/app/src/main/res/drawable-nodpi/weather_vclouds_6.png
new file mode 100644
index 000000000..6c96e68fb
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_7.png b/app/src/main/res/drawable-nodpi/weather_vclouds_7.png
new file mode 100644
index 000000000..5c51709d4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_8.png b/app/src/main/res/drawable-nodpi/weather_vclouds_8.png
new file mode 100644
index 000000000..3af9bab22
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_9.png b/app/src/main/res/drawable-nodpi/weather_vclouds_9.png
new file mode 100644
index 000000000..beab92f02
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_vclouds_na.png b/app/src/main/res/drawable-nodpi/weather_vclouds_na.png
new file mode 100644
index 000000000..679a79be8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_vclouds_na.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_0.png b/app/src/main/res/drawable-nodpi/weather_weezle_0.png
new file mode 100644
index 000000000..6acb871e6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_0.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_1.png b/app/src/main/res/drawable-nodpi/weather_weezle_1.png
new file mode 100644
index 000000000..f52e18e5e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_1.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_10.png b/app/src/main/res/drawable-nodpi/weather_weezle_10.png
new file mode 100644
index 000000000..940be3fc3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_10.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_11.png b/app/src/main/res/drawable-nodpi/weather_weezle_11.png
new file mode 100644
index 000000000..cc1a9d0f8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_11.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_12.png b/app/src/main/res/drawable-nodpi/weather_weezle_12.png
new file mode 100644
index 000000000..cc1a9d0f8
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_12.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_13.png b/app/src/main/res/drawable-nodpi/weather_weezle_13.png
new file mode 100644
index 000000000..7bd818046
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_13.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_14.png b/app/src/main/res/drawable-nodpi/weather_weezle_14.png
new file mode 100644
index 000000000..49f259f3a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_14.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_15.png b/app/src/main/res/drawable-nodpi/weather_weezle_15.png
new file mode 100644
index 000000000..49f259f3a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_15.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_16.png b/app/src/main/res/drawable-nodpi/weather_weezle_16.png
new file mode 100644
index 000000000..7bd818046
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_16.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_17.png b/app/src/main/res/drawable-nodpi/weather_weezle_17.png
new file mode 100644
index 000000000..940be3fc3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_17.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_18.png b/app/src/main/res/drawable-nodpi/weather_weezle_18.png
new file mode 100644
index 000000000..940be3fc3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_18.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_19.png b/app/src/main/res/drawable-nodpi/weather_weezle_19.png
new file mode 100644
index 000000000..f52e18e5e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_19.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_2.png b/app/src/main/res/drawable-nodpi/weather_weezle_2.png
new file mode 100644
index 000000000..f52e18e5e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_2.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_20.png b/app/src/main/res/drawable-nodpi/weather_weezle_20.png
new file mode 100644
index 000000000..f52e18e5e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_20.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_21.png b/app/src/main/res/drawable-nodpi/weather_weezle_21.png
new file mode 100644
index 000000000..f52e18e5e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_21.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_22.png b/app/src/main/res/drawable-nodpi/weather_weezle_22.png
new file mode 100644
index 000000000..f52e18e5e
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_22.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_23.png b/app/src/main/res/drawable-nodpi/weather_weezle_23.png
new file mode 100644
index 000000000..2dc291908
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_23.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_24.png b/app/src/main/res/drawable-nodpi/weather_weezle_24.png
new file mode 100644
index 000000000..830341c03
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_24.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_25.png b/app/src/main/res/drawable-nodpi/weather_weezle_25.png
new file mode 100644
index 000000000..be622dcbc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_25.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_26.png b/app/src/main/res/drawable-nodpi/weather_weezle_26.png
new file mode 100644
index 000000000..2dc291908
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_26.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_27.png b/app/src/main/res/drawable-nodpi/weather_weezle_27.png
new file mode 100644
index 000000000..ff9b86b43
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_27.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_28.png b/app/src/main/res/drawable-nodpi/weather_weezle_28.png
new file mode 100644
index 000000000..b28a7cced
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_28.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_29.png b/app/src/main/res/drawable-nodpi/weather_weezle_29.png
new file mode 100644
index 000000000..ff9b86b43
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_29.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_3.png b/app/src/main/res/drawable-nodpi/weather_weezle_3.png
new file mode 100644
index 000000000..6acb871e6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_3.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_30.png b/app/src/main/res/drawable-nodpi/weather_weezle_30.png
new file mode 100644
index 000000000..a44793060
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_30.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_31.png b/app/src/main/res/drawable-nodpi/weather_weezle_31.png
new file mode 100644
index 000000000..d628547b4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_31.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_32.png b/app/src/main/res/drawable-nodpi/weather_weezle_32.png
new file mode 100644
index 000000000..68ec56a7f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_32.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_33.png b/app/src/main/res/drawable-nodpi/weather_weezle_33.png
new file mode 100644
index 000000000..a98d8c8bc
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_33.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_34.png b/app/src/main/res/drawable-nodpi/weather_weezle_34.png
new file mode 100644
index 000000000..4dc679e25
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_34.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_35.png b/app/src/main/res/drawable-nodpi/weather_weezle_35.png
new file mode 100644
index 000000000..54651599a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_35.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_36.png b/app/src/main/res/drawable-nodpi/weather_weezle_36.png
new file mode 100644
index 000000000..b9931df0c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_36.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_37.png b/app/src/main/res/drawable-nodpi/weather_weezle_37.png
new file mode 100644
index 000000000..d9f45d19b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_37.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_38.png b/app/src/main/res/drawable-nodpi/weather_weezle_38.png
new file mode 100644
index 000000000..d9f45d19b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_38.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_39.png b/app/src/main/res/drawable-nodpi/weather_weezle_39.png
new file mode 100644
index 000000000..d9f45d19b
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_39.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_4.png b/app/src/main/res/drawable-nodpi/weather_weezle_4.png
new file mode 100644
index 000000000..6acb871e6
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_4.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_40.png b/app/src/main/res/drawable-nodpi/weather_weezle_40.png
new file mode 100644
index 000000000..0f0dbc07d
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_40.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_41.png b/app/src/main/res/drawable-nodpi/weather_weezle_41.png
new file mode 100644
index 000000000..7bd818046
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_41.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_42.png b/app/src/main/res/drawable-nodpi/weather_weezle_42.png
new file mode 100644
index 000000000..49f259f3a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_42.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_43.png b/app/src/main/res/drawable-nodpi/weather_weezle_43.png
new file mode 100644
index 000000000..7bd818046
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_43.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_44.png b/app/src/main/res/drawable-nodpi/weather_weezle_44.png
new file mode 100644
index 000000000..ff9b86b43
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_44.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_45.png b/app/src/main/res/drawable-nodpi/weather_weezle_45.png
new file mode 100644
index 000000000..f6c2efcec
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_45.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_46.png b/app/src/main/res/drawable-nodpi/weather_weezle_46.png
new file mode 100644
index 000000000..c1794c0c4
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_46.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_47.png b/app/src/main/res/drawable-nodpi/weather_weezle_47.png
new file mode 100644
index 000000000..f6c2efcec
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_47.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_5.png b/app/src/main/res/drawable-nodpi/weather_weezle_5.png
new file mode 100644
index 000000000..54651599a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_5.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_6.png b/app/src/main/res/drawable-nodpi/weather_weezle_6.png
new file mode 100644
index 000000000..54651599a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_6.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_7.png b/app/src/main/res/drawable-nodpi/weather_weezle_7.png
new file mode 100644
index 000000000..54651599a
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_7.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_8.png b/app/src/main/res/drawable-nodpi/weather_weezle_8.png
new file mode 100644
index 000000000..940be3fc3
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_8.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_9.png b/app/src/main/res/drawable-nodpi/weather_weezle_9.png
new file mode 100644
index 000000000..3bd8fb43c
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_9.png differ
diff --git a/app/src/main/res/drawable-nodpi/weather_weezle_na.png b/app/src/main/res/drawable-nodpi/weather_weezle_na.png
new file mode 100644
index 000000000..694791a5f
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/weather_weezle_na.png differ
diff --git a/app/src/main/res/drawable/arc_progress.xml b/app/src/main/res/drawable/arc_progress.xml
new file mode 100644
index 000000000..b975bbcbe
--- /dev/null
+++ b/app/src/main/res/drawable/arc_progress.xml
@@ -0,0 +1,17 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/circle.xml b/app/src/main/res/drawable/circle.xml
new file mode 100644
index 000000000..899f871bf
--- /dev/null
+++ b/app/src/main/res/drawable/circle.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/color_table_bottom_left.xml b/app/src/main/res/drawable/color_table_bottom_left.xml
new file mode 100644
index 000000000..1c0bd137b
--- /dev/null
+++ b/app/src/main/res/drawable/color_table_bottom_left.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/color_table_bottom_right.xml b/app/src/main/res/drawable/color_table_bottom_right.xml
new file mode 100644
index 000000000..ba0e7c83a
--- /dev/null
+++ b/app/src/main/res/drawable/color_table_bottom_right.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/color_table_square.xml b/app/src/main/res/drawable/color_table_square.xml
new file mode 100644
index 000000000..424ccb100
--- /dev/null
+++ b/app/src/main/res/drawable/color_table_square.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/color_table_top_left.xml b/app/src/main/res/drawable/color_table_top_left.xml
new file mode 100644
index 000000000..02701f975
--- /dev/null
+++ b/app/src/main/res/drawable/color_table_top_left.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/color_table_top_right.xml b/app/src/main/res/drawable/color_table_top_right.xml
new file mode 100644
index 000000000..e774af97a
--- /dev/null
+++ b/app/src/main/res/drawable/color_table_top_right.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/container.xml b/app/src/main/res/drawable/container.xml
new file mode 100644
index 000000000..126e58693
--- /dev/null
+++ b/app/src/main/res/drawable/container.xml
@@ -0,0 +1,10 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/container_background_accent.xml b/app/src/main/res/drawable/container_background_accent.xml
new file mode 100644
index 000000000..d9710f34d
--- /dev/null
+++ b/app/src/main/res/drawable/container_background_accent.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/container_main_less_rounded.xml b/app/src/main/res/drawable/container_main_less_rounded.xml
new file mode 100644
index 000000000..e0d1cfe44
--- /dev/null
+++ b/app/src/main/res/drawable/container_main_less_rounded.xml
@@ -0,0 +1,20 @@
+
+
+ -
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/container_main_less_rounded_no_ripple.xml b/app/src/main/res/drawable/container_main_less_rounded_no_ripple.xml
new file mode 100644
index 000000000..d83496431
--- /dev/null
+++ b/app/src/main/res/drawable/container_main_less_rounded_no_ripple.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/container_no_ripple.xml b/app/src/main/res/drawable/container_no_ripple.xml
new file mode 100644
index 000000000..dcbd158b7
--- /dev/null
+++ b/app/src/main/res/drawable/container_no_ripple.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/custom_background.xml b/app/src/main/res/drawable/custom_background.xml
new file mode 100644
index 000000000..a6a3e8e93
--- /dev/null
+++ b/app/src/main/res/drawable/custom_background.xml
@@ -0,0 +1,16 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/custom_background_1.xml b/app/src/main/res/drawable/custom_background_1.xml
new file mode 100644
index 000000000..50b31489d
--- /dev/null
+++ b/app/src/main/res/drawable/custom_background_1.xml
@@ -0,0 +1,14 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/custom_background_2.xml b/app/src/main/res/drawable/custom_background_2.xml
new file mode 100644
index 000000000..47a6c57f6
--- /dev/null
+++ b/app/src/main/res/drawable/custom_background_2.xml
@@ -0,0 +1,10 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/custom_background_less_rounded.xml b/app/src/main/res/drawable/custom_background_less_rounded.xml
new file mode 100644
index 000000000..94521990c
--- /dev/null
+++ b/app/src/main/res/drawable/custom_background_less_rounded.xml
@@ -0,0 +1,16 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/default_avatar.png b/app/src/main/res/drawable/default_avatar.png
new file mode 100644
index 000000000..98e919de7
Binary files /dev/null and b/app/src/main/res/drawable/default_avatar.png differ
diff --git a/app/src/main/res/drawable/flexbox_divider.xml b/app/src/main/res/drawable/flexbox_divider.xml
new file mode 100644
index 000000000..d9f1123e7
--- /dev/null
+++ b/app/src/main/res/drawable/flexbox_divider.xml
@@ -0,0 +1,11 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_android.xml b/app/src/main/res/drawable/ic_android.xml
new file mode 100644
index 000000000..115676e99
--- /dev/null
+++ b/app/src/main/res/drawable/ic_android.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_aod.xml b/app/src/main/res/drawable/ic_aod.xml
new file mode 100644
index 000000000..6b68b0517
--- /dev/null
+++ b/app/src/main/res/drawable/ic_aod.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_buttons.xml b/app/src/main/res/drawable/ic_buttons.xml
new file mode 100644
index 000000000..a3a76c7e0
--- /dev/null
+++ b/app/src/main/res/drawable/ic_buttons.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_asus.xml b/app/src/main/res/drawable/ic_charging_asus.xml
new file mode 100644
index 000000000..60e7411b3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_asus.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_bold.xml b/app/src/main/res/drawable/ic_charging_bold.xml
new file mode 100644
index 000000000..d87733205
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_bold.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_buddy.xml b/app/src/main/res/drawable/ic_charging_buddy.xml
new file mode 100644
index 000000000..c9d97cd0e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_buddy.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_evplug.xml b/app/src/main/res/drawable/ic_charging_evplug.xml
new file mode 100644
index 000000000..f65ee572d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_evplug.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_idc.xml b/app/src/main/res/drawable/ic_charging_idc.xml
new file mode 100644
index 000000000..ae1cd8049
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_idc.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_ios.xml b/app/src/main/res/drawable/ic_charging_ios.xml
new file mode 100644
index 000000000..884d888e9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_ios.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_koplak.xml b/app/src/main/res/drawable/ic_charging_koplak.xml
new file mode 100644
index 000000000..32f22c247
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_koplak.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_miui.xml b/app/src/main/res/drawable/ic_charging_miui.xml
new file mode 100644
index 000000000..6e6efc45e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_miui.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_mmk.xml b/app/src/main/res/drawable/ic_charging_mmk.xml
new file mode 100644
index 000000000..1b63240e8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_mmk.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_moto.xml b/app/src/main/res/drawable/ic_charging_moto.xml
new file mode 100644
index 000000000..b9c3cadcf
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_moto.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_nokia.xml b/app/src/main/res/drawable/ic_charging_nokia.xml
new file mode 100644
index 000000000..9e67694a9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_nokia.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_plug.xml b/app/src/main/res/drawable/ic_charging_plug.xml
new file mode 100644
index 000000000..1e0009733
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_plug.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_powercable.xml b/app/src/main/res/drawable/ic_charging_powercable.xml
new file mode 100644
index 000000000..7b132a195
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_powercable.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_powercord.xml b/app/src/main/res/drawable/ic_charging_powercord.xml
new file mode 100644
index 000000000..6b8677c9d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_powercord.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_powerstation.xml b/app/src/main/res/drawable/ic_charging_powerstation.xml
new file mode 100644
index 000000000..4e44df9f4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_powerstation.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_realme.xml b/app/src/main/res/drawable/ic_charging_realme.xml
new file mode 100644
index 000000000..94b6ab17f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_realme.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_soak.xml b/app/src/main/res/drawable/ic_charging_soak.xml
new file mode 100644
index 000000000..8d4355eb1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_soak.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_stres.xml b/app/src/main/res/drawable/ic_charging_stres.xml
new file mode 100644
index 000000000..91683848e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_stres.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_charging_strip.xml b/app/src/main/res/drawable/ic_charging_strip.xml
new file mode 100644
index 000000000..414472658
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_strip.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_usbcable.xml b/app/src/main/res/drawable/ic_charging_usbcable.xml
new file mode 100644
index 000000000..fec8f1563
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_usbcable.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_charging_xiaomi.xml b/app/src/main/res/drawable/ic_charging_xiaomi.xml
new file mode 100644
index 000000000..d93397b9b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_charging_xiaomi.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_chevron_left.xml b/app/src/main/res/drawable/ic_chevron_left.xml
new file mode 100644
index 000000000..1b69b4cd7
--- /dev/null
+++ b/app/src/main/res/drawable/ic_chevron_left.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_chevron_right.xml b/app/src/main/res/drawable/ic_chevron_right.xml
new file mode 100644
index 000000000..f06ebe996
--- /dev/null
+++ b/app/src/main/res/drawable/ic_chevron_right.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_clear.xml b/app/src/main/res/drawable/ic_clear.xml
new file mode 100644
index 000000000..34873a5a5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_clear.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_clear_all.xml b/app/src/main/res/drawable/ic_clear_all.xml
new file mode 100644
index 000000000..5caf4febb
--- /dev/null
+++ b/app/src/main/res/drawable/ic_clear_all.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_crdroid.xml b/app/src/main/res/drawable/ic_crdroid.xml
new file mode 100644
index 000000000..a463436de
--- /dev/null
+++ b/app/src/main/res/drawable/ic_crdroid.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_credits.xml b/app/src/main/res/drawable/ic_credits.xml
new file mode 100644
index 000000000..13aca6d98
--- /dev/null
+++ b/app/src/main/res/drawable/ic_credits.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_default_person.xml b/app/src/main/res/drawable/ic_default_person.xml
new file mode 100644
index 000000000..e3cdd005f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_default_person.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml
new file mode 100644
index 000000000..2d481ff12
--- /dev/null
+++ b/app/src/main/res/drawable/ic_delete.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_export.xml b/app/src/main/res/drawable/ic_export.xml
new file mode 100644
index 000000000..67f989782
--- /dev/null
+++ b/app/src/main/res/drawable/ic_export.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_github.xml b/app/src/main/res/drawable/ic_github.xml
new file mode 100644
index 000000000..5f4690abd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_github.xml
@@ -0,0 +1,11 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_history.xml b/app/src/main/res/drawable/ic_history.xml
new file mode 100644
index 000000000..09c1757b2
--- /dev/null
+++ b/app/src/main/res/drawable/ic_history.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_hooks.xml b/app/src/main/res/drawable/ic_hooks.xml
new file mode 100644
index 000000000..64c40f3c0
--- /dev/null
+++ b/app/src/main/res/drawable/ic_hooks.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_humidity_symbol.xml b/app/src/main/res/drawable/ic_humidity_symbol.xml
new file mode 100644
index 000000000..c52b21cbf
--- /dev/null
+++ b/app/src/main/res/drawable/ic_humidity_symbol.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_import.xml b/app/src/main/res/drawable/ic_import.xml
new file mode 100644
index 000000000..243448b18
--- /dev/null
+++ b/app/src/main/res/drawable/ic_import.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_ios_device.png b/app/src/main/res/drawable/ic_ios_device.png
new file mode 100644
index 000000000..de380b663
Binary files /dev/null and b/app/src/main/res/drawable/ic_ios_device.png differ
diff --git a/app/src/main/res/drawable/ic_ios_device_scaled.xml b/app/src/main/res/drawable/ic_ios_device_scaled.xml
new file mode 100644
index 000000000..980df6216
--- /dev/null
+++ b/app/src/main/res/drawable/ic_ios_device_scaled.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_kill.xml b/app/src/main/res/drawable/ic_kill.xml
new file mode 100644
index 000000000..49a86149f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_kill.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 000000000..ef99a4cff
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 000000000..87d9e492b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_lens_color.xml b/app/src/main/res/drawable/ic_lens_color.xml
new file mode 100644
index 000000000..a4ec7341c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_lens_color.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_lock.xml b/app/src/main/res/drawable/ic_lock.xml
new file mode 100644
index 000000000..8b57c15a6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_lock.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_lockscreen_clock.xml b/app/src/main/res/drawable/ic_lockscreen_clock.xml
new file mode 100644
index 000000000..51f1887d3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_lockscreen_clock.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_matrixx_logo.xml b/app/src/main/res/drawable/ic_matrixx_logo.xml
new file mode 100644
index 000000000..ff4c55401
--- /dev/null
+++ b/app/src/main/res/drawable/ic_matrixx_logo.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_mic_color.xml b/app/src/main/res/drawable/ic_mic_color.xml
new file mode 100644
index 000000000..c90b98e35
--- /dev/null
+++ b/app/src/main/res/drawable/ic_mic_color.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_mods_lockscreen.xml b/app/src/main/res/drawable/ic_mods_lockscreen.xml
new file mode 100644
index 000000000..6b8659c98
--- /dev/null
+++ b/app/src/main/res/drawable/ic_mods_lockscreen.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_mods_misc.xml b/app/src/main/res/drawable/ic_mods_misc.xml
new file mode 100644
index 000000000..3ccb62d20
--- /dev/null
+++ b/app/src/main/res/drawable/ic_mods_misc.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_mods_package_manager.xml b/app/src/main/res/drawable/ic_mods_package_manager.xml
new file mode 100644
index 000000000..87e4f2b4d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_mods_package_manager.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_mods_qs_header.xml b/app/src/main/res/drawable/ic_mods_qs_header.xml
new file mode 100644
index 000000000..972fe4ded
--- /dev/null
+++ b/app/src/main/res/drawable/ic_mods_qs_header.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_more.xml b/app/src/main/res/drawable/ic_more.xml
new file mode 100644
index 000000000..9fb2a2d89
--- /dev/null
+++ b/app/src/main/res/drawable/ic_more.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_navbar_home.xml b/app/src/main/res/drawable/ic_navbar_home.xml
new file mode 100644
index 000000000..b6e94c984
--- /dev/null
+++ b/app/src/main/res/drawable/ic_navbar_home.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_navbar_mods.xml b/app/src/main/res/drawable/ic_navbar_mods.xml
new file mode 100644
index 000000000..af645b605
--- /dev/null
+++ b/app/src/main/res/drawable/ic_navbar_mods.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_navbar_settings.xml b/app/src/main/res/drawable/ic_navbar_settings.xml
new file mode 100644
index 000000000..b02cfc0b8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_navbar_settings.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_navigationbar.xml b/app/src/main/res/drawable/ic_navigationbar.xml
new file mode 100644
index 000000000..5ef74ee0d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_navigationbar.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_notifications.xml b/app/src/main/res/drawable/ic_notifications.xml
new file mode 100644
index 000000000..cc66be380
--- /dev/null
+++ b/app/src/main/res/drawable/ic_notifications.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_omnirom.xml b/app/src/main/res/drawable/ic_omnirom.xml
new file mode 100644
index 000000000..079afe6af
--- /dev/null
+++ b/app/src/main/res/drawable/ic_omnirom.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_power_menu.xml b/app/src/main/res/drawable/ic_power_menu.xml
new file mode 100644
index 000000000..0f2e017c7
--- /dev/null
+++ b/app/src/main/res/drawable/ic_power_menu.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_qs.xml b/app/src/main/res/drawable/ic_qs.xml
new file mode 100644
index 000000000..aa48d8ae8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_qs.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_quick_settings.xml b/app/src/main/res/drawable/ic_quick_settings.xml
new file mode 100644
index 000000000..4f0ca4763
--- /dev/null
+++ b/app/src/main/res/drawable/ic_quick_settings.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_recents.xml b/app/src/main/res/drawable/ic_recents.xml
new file mode 100644
index 000000000..cb2c82bec
--- /dev/null
+++ b/app/src/main/res/drawable/ic_recents.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_reset.xml b/app/src/main/res/drawable/ic_reset.xml
new file mode 100644
index 000000000..5e8993277
--- /dev/null
+++ b/app/src/main/res/drawable/ic_reset.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_restart.xml b/app/src/main/res/drawable/ic_restart.xml
new file mode 100644
index 000000000..407979950
--- /dev/null
+++ b/app/src/main/res/drawable/ic_restart.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_screen_off.xml b/app/src/main/res/drawable/ic_screen_off.xml
new file mode 100644
index 000000000..14fc13e9b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_screen_off.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_screenrecord.xml b/app/src/main/res/drawable/ic_screenrecord.xml
new file mode 100644
index 000000000..8f8861e69
--- /dev/null
+++ b/app/src/main/res/drawable/ic_screenrecord.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_screenshot.xml b/app/src/main/res/drawable/ic_screenshot.xml
new file mode 100644
index 000000000..8f0834042
--- /dev/null
+++ b/app/src/main/res/drawable/ic_screenshot.xml
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_search.xml b/app/src/main/res/drawable/ic_search.xml
new file mode 100644
index 000000000..fc6a002f5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_search.xml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_settings_accent.xml b/app/src/main/res/drawable/ic_settings_accent.xml
new file mode 100644
index 000000000..241933c08
--- /dev/null
+++ b/app/src/main/res/drawable/ic_settings_accent.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_statusbar.xml b/app/src/main/res/drawable/ic_statusbar.xml
new file mode 100644
index 000000000..f9ec9c397
--- /dev/null
+++ b/app/src/main/res/drawable/ic_statusbar.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_super_g_color.xml b/app/src/main/res/drawable/ic_super_g_color.xml
new file mode 100644
index 000000000..5ac6c4123
--- /dev/null
+++ b/app/src/main/res/drawable/ic_super_g_color.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_superior.xml b/app/src/main/res/drawable/ic_superior.xml
new file mode 100644
index 000000000..205a87414
--- /dev/null
+++ b/app/src/main/res/drawable/ic_superior.xml
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_switch_app.xml b/app/src/main/res/drawable/ic_switch_app.xml
new file mode 100644
index 000000000..d54cb72c9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_switch_app.xml
@@ -0,0 +1,12 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_tick.xml b/app/src/main/res/drawable/ic_tick.xml
new file mode 100644
index 000000000..93bcf44a8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_tick.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_usage.xml b/app/src/main/res/drawable/ic_usage.xml
new file mode 100644
index 000000000..65143782e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_usage.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_volume.xml b/app/src/main/res/drawable/ic_volume.xml
new file mode 100644
index 000000000..efb6713ef
--- /dev/null
+++ b/app/src/main/res/drawable/ic_volume.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_volume_up.png b/app/src/main/res/drawable/ic_volume_up.png
new file mode 100644
index 000000000..d32aebd17
Binary files /dev/null and b/app/src/main/res/drawable/ic_volume_up.png differ
diff --git a/app/src/main/res/drawable/ic_widget_media.xml b/app/src/main/res/drawable/ic_widget_media.xml
new file mode 100644
index 000000000..f88572181
--- /dev/null
+++ b/app/src/main/res/drawable/ic_widget_media.xml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_widget_power.xml b/app/src/main/res/drawable/ic_widget_power.xml
new file mode 100644
index 000000000..d1cc93d81
--- /dev/null
+++ b/app/src/main/res/drawable/ic_widget_power.xml
@@ -0,0 +1,5 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_wind_symbol.xml b/app/src/main/res/drawable/ic_wind_symbol.xml
new file mode 100644
index 000000000..236f1c338
--- /dev/null
+++ b/app/src/main/res/drawable/ic_wind_symbol.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/img.png b/app/src/main/res/drawable/img.png
new file mode 100644
index 000000000..6a7004780
Binary files /dev/null and b/app/src/main/res/drawable/img.png differ
diff --git a/app/src/main/res/drawable/ios_widget_line_progress_track.xml b/app/src/main/res/drawable/ios_widget_line_progress_track.xml
new file mode 100644
index 000000000..9e8985bdb
--- /dev/null
+++ b/app/src/main/res/drawable/ios_widget_line_progress_track.xml
@@ -0,0 +1,24 @@
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ls_clock_img.jpg b/app/src/main/res/drawable/ls_clock_img.jpg
new file mode 100644
index 000000000..e1eeb4052
Binary files /dev/null and b/app/src/main/res/drawable/ls_clock_img.jpg differ
diff --git a/app/src/main/res/drawable/outline_0.xml b/app/src/main/res/drawable/outline_0.xml
new file mode 100644
index 000000000..13912e97b
--- /dev/null
+++ b/app/src/main/res/drawable/outline_0.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_1.xml b/app/src/main/res/drawable/outline_1.xml
new file mode 100644
index 000000000..df37551b0
--- /dev/null
+++ b/app/src/main/res/drawable/outline_1.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_10.xml b/app/src/main/res/drawable/outline_10.xml
new file mode 100644
index 000000000..3519f4725
--- /dev/null
+++ b/app/src/main/res/drawable/outline_10.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_11.xml b/app/src/main/res/drawable/outline_11.xml
new file mode 100644
index 000000000..f55a2773c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_11.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_12.xml b/app/src/main/res/drawable/outline_12.xml
new file mode 100644
index 000000000..89fb6f492
--- /dev/null
+++ b/app/src/main/res/drawable/outline_12.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_13.xml b/app/src/main/res/drawable/outline_13.xml
new file mode 100644
index 000000000..28e7cedc8
--- /dev/null
+++ b/app/src/main/res/drawable/outline_13.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_14.xml b/app/src/main/res/drawable/outline_14.xml
new file mode 100644
index 000000000..fb2d5df47
--- /dev/null
+++ b/app/src/main/res/drawable/outline_14.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_15.xml b/app/src/main/res/drawable/outline_15.xml
new file mode 100644
index 000000000..a47dd6e5c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_15.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_16.xml b/app/src/main/res/drawable/outline_16.xml
new file mode 100644
index 000000000..fb2d5df47
--- /dev/null
+++ b/app/src/main/res/drawable/outline_16.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_17.xml b/app/src/main/res/drawable/outline_17.xml
new file mode 100644
index 000000000..5eb035803
--- /dev/null
+++ b/app/src/main/res/drawable/outline_17.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_18.xml b/app/src/main/res/drawable/outline_18.xml
new file mode 100644
index 000000000..3519f4725
--- /dev/null
+++ b/app/src/main/res/drawable/outline_18.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_19.xml b/app/src/main/res/drawable/outline_19.xml
new file mode 100644
index 000000000..f75464b1b
--- /dev/null
+++ b/app/src/main/res/drawable/outline_19.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_2.xml b/app/src/main/res/drawable/outline_2.xml
new file mode 100644
index 000000000..13912e97b
--- /dev/null
+++ b/app/src/main/res/drawable/outline_2.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_20.xml b/app/src/main/res/drawable/outline_20.xml
new file mode 100644
index 000000000..f75464b1b
--- /dev/null
+++ b/app/src/main/res/drawable/outline_20.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_21.xml b/app/src/main/res/drawable/outline_21.xml
new file mode 100644
index 000000000..f75464b1b
--- /dev/null
+++ b/app/src/main/res/drawable/outline_21.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_22.xml b/app/src/main/res/drawable/outline_22.xml
new file mode 100644
index 000000000..f75464b1b
--- /dev/null
+++ b/app/src/main/res/drawable/outline_22.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_23.xml b/app/src/main/res/drawable/outline_23.xml
new file mode 100644
index 000000000..f75464b1b
--- /dev/null
+++ b/app/src/main/res/drawable/outline_23.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_24.xml b/app/src/main/res/drawable/outline_24.xml
new file mode 100644
index 000000000..13912e97b
--- /dev/null
+++ b/app/src/main/res/drawable/outline_24.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_25.xml b/app/src/main/res/drawable/outline_25.xml
new file mode 100644
index 000000000..296b513fa
--- /dev/null
+++ b/app/src/main/res/drawable/outline_25.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_26.xml b/app/src/main/res/drawable/outline_26.xml
new file mode 100644
index 000000000..97bf72758
--- /dev/null
+++ b/app/src/main/res/drawable/outline_26.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_27.xml b/app/src/main/res/drawable/outline_27.xml
new file mode 100644
index 000000000..8ef23dd1d
--- /dev/null
+++ b/app/src/main/res/drawable/outline_27.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_28.xml b/app/src/main/res/drawable/outline_28.xml
new file mode 100644
index 000000000..8ef23dd1d
--- /dev/null
+++ b/app/src/main/res/drawable/outline_28.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_29.xml b/app/src/main/res/drawable/outline_29.xml
new file mode 100644
index 000000000..bfbb66d42
--- /dev/null
+++ b/app/src/main/res/drawable/outline_29.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_3.xml b/app/src/main/res/drawable/outline_3.xml
new file mode 100644
index 000000000..df37551b0
--- /dev/null
+++ b/app/src/main/res/drawable/outline_3.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_30.xml b/app/src/main/res/drawable/outline_30.xml
new file mode 100644
index 000000000..d77cf1f01
--- /dev/null
+++ b/app/src/main/res/drawable/outline_30.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_31.xml b/app/src/main/res/drawable/outline_31.xml
new file mode 100644
index 000000000..c17731fb3
--- /dev/null
+++ b/app/src/main/res/drawable/outline_31.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_32.xml b/app/src/main/res/drawable/outline_32.xml
new file mode 100644
index 000000000..36ea58e56
--- /dev/null
+++ b/app/src/main/res/drawable/outline_32.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_33.xml b/app/src/main/res/drawable/outline_33.xml
new file mode 100644
index 000000000..c17731fb3
--- /dev/null
+++ b/app/src/main/res/drawable/outline_33.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_34.xml b/app/src/main/res/drawable/outline_34.xml
new file mode 100644
index 000000000..36ea58e56
--- /dev/null
+++ b/app/src/main/res/drawable/outline_34.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_35.xml b/app/src/main/res/drawable/outline_35.xml
new file mode 100644
index 000000000..3519f4725
--- /dev/null
+++ b/app/src/main/res/drawable/outline_35.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_36.xml b/app/src/main/res/drawable/outline_36.xml
new file mode 100644
index 000000000..296b513fa
--- /dev/null
+++ b/app/src/main/res/drawable/outline_36.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_37.xml b/app/src/main/res/drawable/outline_37.xml
new file mode 100644
index 000000000..302b87c7c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_37.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_38.xml b/app/src/main/res/drawable/outline_38.xml
new file mode 100644
index 000000000..302b87c7c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_38.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_39.xml b/app/src/main/res/drawable/outline_39.xml
new file mode 100644
index 000000000..302b87c7c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_39.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_4.xml b/app/src/main/res/drawable/outline_4.xml
new file mode 100644
index 000000000..df37551b0
--- /dev/null
+++ b/app/src/main/res/drawable/outline_4.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_40.xml b/app/src/main/res/drawable/outline_40.xml
new file mode 100644
index 000000000..bf890a130
--- /dev/null
+++ b/app/src/main/res/drawable/outline_40.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_41.xml b/app/src/main/res/drawable/outline_41.xml
new file mode 100644
index 000000000..a47dd6e5c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_41.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_42.xml b/app/src/main/res/drawable/outline_42.xml
new file mode 100644
index 000000000..fb2d5df47
--- /dev/null
+++ b/app/src/main/res/drawable/outline_42.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_43.xml b/app/src/main/res/drawable/outline_43.xml
new file mode 100644
index 000000000..a47dd6e5c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_43.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_44.xml b/app/src/main/res/drawable/outline_44.xml
new file mode 100644
index 000000000..8e44b2491
--- /dev/null
+++ b/app/src/main/res/drawable/outline_44.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_45.xml b/app/src/main/res/drawable/outline_45.xml
new file mode 100644
index 000000000..302b87c7c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_45.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_46.xml b/app/src/main/res/drawable/outline_46.xml
new file mode 100644
index 000000000..fcb6804b7
--- /dev/null
+++ b/app/src/main/res/drawable/outline_46.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_47.xml b/app/src/main/res/drawable/outline_47.xml
new file mode 100644
index 000000000..302b87c7c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_47.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_5.xml b/app/src/main/res/drawable/outline_5.xml
new file mode 100644
index 000000000..fcb6804b7
--- /dev/null
+++ b/app/src/main/res/drawable/outline_5.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_6.xml b/app/src/main/res/drawable/outline_6.xml
new file mode 100644
index 000000000..fcb6804b7
--- /dev/null
+++ b/app/src/main/res/drawable/outline_6.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_7.xml b/app/src/main/res/drawable/outline_7.xml
new file mode 100644
index 000000000..fcb6804b7
--- /dev/null
+++ b/app/src/main/res/drawable/outline_7.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_8.xml b/app/src/main/res/drawable/outline_8.xml
new file mode 100644
index 000000000..522c724f2
--- /dev/null
+++ b/app/src/main/res/drawable/outline_8.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_9.xml b/app/src/main/res/drawable/outline_9.xml
new file mode 100644
index 000000000..5eb035803
--- /dev/null
+++ b/app/src/main/res/drawable/outline_9.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_na.xml b/app/src/main/res/drawable/outline_na.xml
new file mode 100644
index 000000000..31f593206
--- /dev/null
+++ b/app/src/main/res/drawable/outline_na.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/panel_bg_without_shadow.xml b/app/src/main/res/drawable/panel_bg_without_shadow.xml
new file mode 100644
index 000000000..700fae6b1
--- /dev/null
+++ b/app/src/main/res/drawable/panel_bg_without_shadow.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/preview_color_picker.xml b/app/src/main/res/drawable/preview_color_picker.xml
new file mode 100644
index 000000000..d6a3fb5c7
--- /dev/null
+++ b/app/src/main/res/drawable/preview_color_picker.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/progress_bar_ios_battery.xml b/app/src/main/res/drawable/progress_bar_ios_battery.xml
new file mode 100644
index 000000000..95140ccf0
--- /dev/null
+++ b/app/src/main/res/drawable/progress_bar_ios_battery.xml
@@ -0,0 +1,36 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/protection_background.xml b/app/src/main/res/drawable/protection_background.xml
new file mode 100644
index 000000000..46022d236
--- /dev/null
+++ b/app/src/main/res/drawable/protection_background.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/qs_header_preview_background.xml b/app/src/main/res/drawable/qs_header_preview_background.xml
new file mode 100644
index 000000000..758adbfef
--- /dev/null
+++ b/app/src/main/res/drawable/qs_header_preview_background.xml
@@ -0,0 +1,10 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/qs_header_preview_border.xml b/app/src/main/res/drawable/qs_header_preview_border.xml
new file mode 100644
index 000000000..632d46d8e
--- /dev/null
+++ b/app/src/main/res/drawable/qs_header_preview_border.xml
@@ -0,0 +1,16 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/reset_button.xml b/app/src/main/res/drawable/reset_button.xml
new file mode 100644
index 000000000..1b5a2e805
--- /dev/null
+++ b/app/src/main/res/drawable/reset_button.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/search_hint_color.xml b/app/src/main/res/drawable/search_hint_color.xml
new file mode 100644
index 000000000..ba37c27a8
--- /dev/null
+++ b/app/src/main/res/drawable/search_hint_color.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/settingslib_ic_info_outline_24.xml b/app/src/main/res/drawable/settingslib_ic_info_outline_24.xml
new file mode 100644
index 000000000..22b164106
--- /dev/null
+++ b/app/src/main/res/drawable/settingslib_ic_info_outline_24.xml
@@ -0,0 +1,11 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/switchbar_background.xml b/app/src/main/res/drawable/switchbar_background.xml
new file mode 100644
index 000000000..562633050
--- /dev/null
+++ b/app/src/main/res/drawable/switchbar_background.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/test.xml b/app/src/main/res/drawable/test.xml
new file mode 100644
index 000000000..c52b21cbf
--- /dev/null
+++ b/app/src/main/res/drawable/test.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/text_field_corners.xml b/app/src/main/res/drawable/text_field_corners.xml
new file mode 100644
index 000000000..3034c1bce
--- /dev/null
+++ b/app/src/main/res/drawable/text_field_corners.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/time_container_background.xml b/app/src/main/res/drawable/time_container_background.xml
new file mode 100644
index 000000000..041dafe31
--- /dev/null
+++ b/app/src/main/res/drawable/time_container_background.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_0.xml b/app/src/main/res/drawable/weatherclient_0.xml
new file mode 100644
index 000000000..344a6f4ba
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_0.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_1.xml b/app/src/main/res/drawable/weatherclient_1.xml
new file mode 100644
index 000000000..344a6f4ba
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_1.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_10.xml b/app/src/main/res/drawable/weatherclient_10.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_10.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_11.xml b/app/src/main/res/drawable/weatherclient_11.xml
new file mode 100644
index 000000000..13fe25cf7
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_11.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_12.xml b/app/src/main/res/drawable/weatherclient_12.xml
new file mode 100644
index 000000000..13fe25cf7
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_12.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_13.xml b/app/src/main/res/drawable/weatherclient_13.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_13.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_14.xml b/app/src/main/res/drawable/weatherclient_14.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_14.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_15.xml b/app/src/main/res/drawable/weatherclient_15.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_15.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_16.xml b/app/src/main/res/drawable/weatherclient_16.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_16.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_17.xml b/app/src/main/res/drawable/weatherclient_17.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_17.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_18.xml b/app/src/main/res/drawable/weatherclient_18.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_18.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_19.xml b/app/src/main/res/drawable/weatherclient_19.xml
new file mode 100644
index 000000000..c9d56b9f5
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_19.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_20.xml b/app/src/main/res/drawable/weatherclient_20.xml
new file mode 100644
index 000000000..c9d56b9f5
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_20.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_21.xml b/app/src/main/res/drawable/weatherclient_21.xml
new file mode 100644
index 000000000..c9d56b9f5
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_21.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_22.xml b/app/src/main/res/drawable/weatherclient_22.xml
new file mode 100644
index 000000000..c9d56b9f5
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_22.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_23.xml b/app/src/main/res/drawable/weatherclient_23.xml
new file mode 100644
index 000000000..f6c07c144
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_23.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_24.xml b/app/src/main/res/drawable/weatherclient_24.xml
new file mode 100644
index 000000000..f6c07c144
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_24.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_25.xml b/app/src/main/res/drawable/weatherclient_25.xml
new file mode 100644
index 000000000..c2346c238
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_25.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/weatherclient_26.xml b/app/src/main/res/drawable/weatherclient_26.xml
new file mode 100644
index 000000000..7442cf883
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_26.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_27.xml b/app/src/main/res/drawable/weatherclient_27.xml
new file mode 100644
index 000000000..f63eb2cfd
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_27.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_28.xml b/app/src/main/res/drawable/weatherclient_28.xml
new file mode 100644
index 000000000..b495aeaaf
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_28.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_29.xml b/app/src/main/res/drawable/weatherclient_29.xml
new file mode 100644
index 000000000..a47ef9cba
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_29.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_3.xml b/app/src/main/res/drawable/weatherclient_3.xml
new file mode 100644
index 000000000..344a6f4ba
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_3.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_30.xml b/app/src/main/res/drawable/weatherclient_30.xml
new file mode 100644
index 000000000..370f4115a
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_30.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_31.xml b/app/src/main/res/drawable/weatherclient_31.xml
new file mode 100644
index 000000000..681e433b9
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_31.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_32.xml b/app/src/main/res/drawable/weatherclient_32.xml
new file mode 100644
index 000000000..4dc8be873
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_32.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_33.xml b/app/src/main/res/drawable/weatherclient_33.xml
new file mode 100644
index 000000000..c4f341559
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_33.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_34.xml b/app/src/main/res/drawable/weatherclient_34.xml
new file mode 100644
index 000000000..4dc8be873
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_34.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_35.xml b/app/src/main/res/drawable/weatherclient_35.xml
new file mode 100644
index 000000000..344a6f4ba
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_35.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_36.xml b/app/src/main/res/drawable/weatherclient_36.xml
new file mode 100644
index 000000000..f5f13b181
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_36.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_37.xml b/app/src/main/res/drawable/weatherclient_37.xml
new file mode 100644
index 000000000..338579d51
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_37.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_38.xml b/app/src/main/res/drawable/weatherclient_38.xml
new file mode 100644
index 000000000..338579d51
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_38.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_39.xml b/app/src/main/res/drawable/weatherclient_39.xml
new file mode 100644
index 000000000..338579d51
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_39.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_4.xml b/app/src/main/res/drawable/weatherclient_4.xml
new file mode 100644
index 000000000..344a6f4ba
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_4.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_40.xml b/app/src/main/res/drawable/weatherclient_40.xml
new file mode 100644
index 000000000..762eea97e
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_40.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_41.xml b/app/src/main/res/drawable/weatherclient_41.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_41.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_42.xml b/app/src/main/res/drawable/weatherclient_42.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_42.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_43.xml b/app/src/main/res/drawable/weatherclient_43.xml
new file mode 100644
index 000000000..370f4115a
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_43.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_44.xml b/app/src/main/res/drawable/weatherclient_44.xml
new file mode 100644
index 000000000..370f4115a
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_44.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_45.xml b/app/src/main/res/drawable/weatherclient_45.xml
new file mode 100644
index 000000000..344a6f4ba
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_45.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_46.xml b/app/src/main/res/drawable/weatherclient_46.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_46.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_47.xml b/app/src/main/res/drawable/weatherclient_47.xml
new file mode 100644
index 000000000..a020b6b16
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_47.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_5.xml b/app/src/main/res/drawable/weatherclient_5.xml
new file mode 100644
index 000000000..344a6f4ba
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_5.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_6.xml b/app/src/main/res/drawable/weatherclient_6.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_6.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_7.xml b/app/src/main/res/drawable/weatherclient_7.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_7.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_8.xml b/app/src/main/res/drawable/weatherclient_8.xml
new file mode 100644
index 000000000..35415f66f
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_8.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_9.xml b/app/src/main/res/drawable/weatherclient_9.xml
new file mode 100644
index 000000000..13fe25cf7
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_9.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/weatherclient_na.xml b/app/src/main/res/drawable/weatherclient_na.xml
new file mode 100644
index 000000000..9ba51aba5
--- /dev/null
+++ b/app/src/main/res/drawable/weatherclient_na.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/widget_bg.xml b/app/src/main/res/drawable/widget_bg.xml
new file mode 100644
index 000000000..e26a31c19
--- /dev/null
+++ b/app/src/main/res/drawable/widget_bg.xml
@@ -0,0 +1,16 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/widget_progress_full.xml b/app/src/main/res/drawable/widget_progress_full.xml
new file mode 100644
index 000000000..01ce92aa2
--- /dev/null
+++ b/app/src/main/res/drawable/widget_progress_full.xml
@@ -0,0 +1,12 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/widget_progress_track.xml b/app/src/main/res/drawable/widget_progress_track.xml
new file mode 100644
index 000000000..9711e2b91
--- /dev/null
+++ b/app/src/main/res/drawable/widget_progress_track.xml
@@ -0,0 +1,19 @@
+
+
+ -
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/font/bebasneue_bold.ttf b/app/src/main/res/font/bebasneue_bold.ttf
new file mode 100644
index 000000000..6fff6057a
Binary files /dev/null and b/app/src/main/res/font/bebasneue_bold.ttf differ
diff --git a/app/src/main/res/font/br_sc.ttf b/app/src/main/res/font/br_sc.ttf
new file mode 100644
index 000000000..d6279394b
Binary files /dev/null and b/app/src/main/res/font/br_sc.ttf differ
diff --git a/app/src/main/res/font/dot57.otf b/app/src/main/res/font/dot57.otf
new file mode 100644
index 000000000..4ef8dfee8
Binary files /dev/null and b/app/src/main/res/font/dot57.otf differ
diff --git a/app/src/main/res/font/filled.ttf b/app/src/main/res/font/filled.ttf
new file mode 100644
index 000000000..48d8d5cc6
Binary files /dev/null and b/app/src/main/res/font/filled.ttf differ
diff --git a/app/src/main/res/font/filled1.ttf b/app/src/main/res/font/filled1.ttf
new file mode 100644
index 000000000..05b1ba2ad
Binary files /dev/null and b/app/src/main/res/font/filled1.ttf differ
diff --git a/app/src/main/res/font/fontsfree_net_carthart.ttf b/app/src/main/res/font/fontsfree_net_carthart.ttf
new file mode 100644
index 000000000..f9cbb8684
Binary files /dev/null and b/app/src/main/res/font/fontsfree_net_carthart.ttf differ
diff --git a/app/src/main/res/font/future.ttf b/app/src/main/res/font/future.ttf
new file mode 100644
index 000000000..6c63ef804
Binary files /dev/null and b/app/src/main/res/font/future.ttf differ
diff --git a/app/src/main/res/font/futurist_fixed_width_bold.ttf b/app/src/main/res/font/futurist_fixed_width_bold.ttf
new file mode 100644
index 000000000..497979036
Binary files /dev/null and b/app/src/main/res/font/futurist_fixed_width_bold.ttf differ
diff --git a/app/src/main/res/font/hollow.ttf b/app/src/main/res/font/hollow.ttf
new file mode 100644
index 000000000..34c803cc0
Binary files /dev/null and b/app/src/main/res/font/hollow.ttf differ
diff --git a/app/src/main/res/font/hollow1.ttf b/app/src/main/res/font/hollow1.ttf
new file mode 100644
index 000000000..7d0bbd8bf
Binary files /dev/null and b/app/src/main/res/font/hollow1.ttf differ
diff --git a/app/src/main/res/font/ios.ttf b/app/src/main/res/font/ios.ttf
new file mode 100644
index 000000000..47930689d
Binary files /dev/null and b/app/src/main/res/font/ios.ttf differ
diff --git a/app/src/main/res/font/jet_brains_mono.ttf b/app/src/main/res/font/jet_brains_mono.ttf
new file mode 100644
index 000000000..3b75b2690
Binary files /dev/null and b/app/src/main/res/font/jet_brains_mono.ttf differ
diff --git a/app/src/main/res/font/montserrat.otf b/app/src/main/res/font/montserrat.otf
new file mode 100644
index 000000000..c1d1ee37b
Binary files /dev/null and b/app/src/main/res/font/montserrat.otf differ
diff --git a/app/src/main/res/font/sans_bold.ttf b/app/src/main/res/font/sans_bold.ttf
new file mode 100644
index 000000000..d847195c7
Binary files /dev/null and b/app/src/main/res/font/sans_bold.ttf differ
diff --git a/app/src/main/res/font/slim.ttf b/app/src/main/res/font/slim.ttf
new file mode 100644
index 000000000..c58353391
Binary files /dev/null and b/app/src/main/res/font/slim.ttf differ
diff --git a/app/src/main/res/font/steelfish_rounded_bd.ttf b/app/src/main/res/font/steelfish_rounded_bd.ttf
new file mode 100644
index 000000000..5531ff5f4
Binary files /dev/null and b/app/src/main/res/font/steelfish_rounded_bd.ttf differ
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 000000000..a9623d3ee
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/battery_icon_options.xml b/app/src/main/res/layout/battery_icon_options.xml
new file mode 100644
index 000000000..78760b819
--- /dev/null
+++ b/app/src/main/res/layout/battery_icon_options.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/cpv_preference_circle.xml b/app/src/main/res/layout/cpv_preference_circle.xml
new file mode 100644
index 000000000..875109bfe
--- /dev/null
+++ b/app/src/main/res/layout/cpv_preference_circle.xml
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/cpv_preference_circle_large.xml b/app/src/main/res/layout/cpv_preference_circle_large.xml
new file mode 100644
index 000000000..4c3579592
--- /dev/null
+++ b/app/src/main/res/layout/cpv_preference_circle_large.xml
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/cpv_preference_square.xml b/app/src/main/res/layout/cpv_preference_square.xml
new file mode 100644
index 000000000..06f8f76d0
--- /dev/null
+++ b/app/src/main/res/layout/cpv_preference_square.xml
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/cpv_preference_square_large.xml b/app/src/main/res/layout/cpv_preference_square_large.xml
new file mode 100644
index 000000000..e8fa81aa6
--- /dev/null
+++ b/app/src/main/res/layout/cpv_preference_square_large.xml
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/credits_fragment_view.xml b/app/src/main/res/layout/credits_fragment_view.xml
new file mode 100644
index 000000000..65951c701
--- /dev/null
+++ b/app/src/main/res/layout/credits_fragment_view.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/credits_header_view.xml b/app/src/main/res/layout/credits_header_view.xml
new file mode 100644
index 000000000..854aa2d54
--- /dev/null
+++ b/app/src/main/res/layout/credits_header_view.xml
@@ -0,0 +1,11 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/credits_item_view.xml b/app/src/main/res/layout/credits_item_view.xml
new file mode 100644
index 000000000..83e48f106
--- /dev/null
+++ b/app/src/main/res/layout/credits_item_view.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/custom_preference_color.xml b/app/src/main/res/layout/custom_preference_color.xml
new file mode 100644
index 000000000..cbf998446
--- /dev/null
+++ b/app/src/main/res/layout/custom_preference_color.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/custom_preference_recyclerview.xml b/app/src/main/res/layout/custom_preference_recyclerview.xml
new file mode 100644
index 000000000..cb2f8db77
--- /dev/null
+++ b/app/src/main/res/layout/custom_preference_recyclerview.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/custom_preference_slider.xml b/app/src/main/res/layout/custom_preference_slider.xml
new file mode 100644
index 000000000..6e05e9a73
--- /dev/null
+++ b/app/src/main/res/layout/custom_preference_slider.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
new file mode 100644
index 000000000..77d9ef65f
--- /dev/null
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_hooks.xml b/app/src/main/res/layout/fragment_hooks.xml
new file mode 100644
index 000000000..fd6ce953f
--- /dev/null
+++ b/app/src/main/res/layout/fragment_hooks.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/header_image.xml b/app/src/main/res/layout/header_image.xml
new file mode 100644
index 000000000..4ae781921
--- /dev/null
+++ b/app/src/main/res/layout/header_image.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/illustration_preference.xml b/app/src/main/res/layout/illustration_preference.xml
new file mode 100644
index 000000000..f1eacdbd3
--- /dev/null
+++ b/app/src/main/res/layout/illustration_preference.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_bottom_sheet_dialog_layout.xml b/app/src/main/res/layout/list_bottom_sheet_dialog_layout.xml
new file mode 100644
index 000000000..78309154b
--- /dev/null
+++ b/app/src/main/res/layout/list_bottom_sheet_dialog_layout.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/location_browse_activity.xml b/app/src/main/res/layout/location_browse_activity.xml
new file mode 100644
index 000000000..6b743eef0
--- /dev/null
+++ b/app/src/main/res/layout/location_browse_activity.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/location_browse_item.xml b/app/src/main/res/layout/location_browse_item.xml
new file mode 100644
index 000000000..b35719d08
--- /dev/null
+++ b/app/src/main/res/layout/location_browse_item.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preference_category.xml b/app/src/main/res/layout/preference_category.xml
new file mode 100644
index 000000000..e64d38783
--- /dev/null
+++ b/app/src/main/res/layout/preference_category.xml
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preference_clock_layout.xml b/app/src/main/res/layout/preference_clock_layout.xml
new file mode 100644
index 000000000..dda1cceb2
--- /dev/null
+++ b/app/src/main/res/layout/preference_clock_layout.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preference_footer.xml b/app/src/main/res/layout/preference_footer.xml
new file mode 100644
index 000000000..f23a20bd8
--- /dev/null
+++ b/app/src/main/res/layout/preference_footer.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preference_list_item.xml b/app/src/main/res/layout/preference_list_item.xml
new file mode 100644
index 000000000..8a03f43b3
--- /dev/null
+++ b/app/src/main/res/layout/preference_list_item.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preference_material_switch.xml b/app/src/main/res/layout/preference_material_switch.xml
new file mode 100644
index 000000000..86b74bf8c
--- /dev/null
+++ b/app/src/main/res/layout/preference_material_switch.xml
@@ -0,0 +1,8 @@
+
+
diff --git a/app/src/main/res/layout/preference_selector_with_widget.xml b/app/src/main/res/layout/preference_selector_with_widget.xml
new file mode 100644
index 000000000..efeffb9a3
--- /dev/null
+++ b/app/src/main/res/layout/preference_selector_with_widget.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preference_widget_radiobutton.xml b/app/src/main/res/layout/preference_widget_radiobutton.xml
new file mode 100644
index 000000000..d229bf5f6
--- /dev/null
+++ b/app/src/main/res/layout/preference_widget_radiobutton.xml
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_0.xml b/app/src/main/res/layout/preview_header_clock_0.xml
new file mode 100644
index 000000000..91fdac5c1
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_0.xml
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_1.xml b/app/src/main/res/layout/preview_header_clock_1.xml
new file mode 100644
index 000000000..e730fdb22
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_1.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_2.xml b/app/src/main/res/layout/preview_header_clock_2.xml
new file mode 100644
index 000000000..f459d661c
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_2.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_3.xml b/app/src/main/res/layout/preview_header_clock_3.xml
new file mode 100644
index 000000000..10f33ab05
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_3.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_4.xml b/app/src/main/res/layout/preview_header_clock_4.xml
new file mode 100644
index 000000000..b3433bcd0
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_4.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_5.xml b/app/src/main/res/layout/preview_header_clock_5.xml
new file mode 100644
index 000000000..1a145db13
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_5.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_6.xml b/app/src/main/res/layout/preview_header_clock_6.xml
new file mode 100644
index 000000000..c30b6a565
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_6.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_7.xml b/app/src/main/res/layout/preview_header_clock_7.xml
new file mode 100644
index 000000000..436ecb5c9
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_7.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_header_clock_8.xml b/app/src/main/res/layout/preview_header_clock_8.xml
new file mode 100644
index 000000000..ec609295b
--- /dev/null
+++ b/app/src/main/res/layout/preview_header_clock_8.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_0.xml b/app/src/main/res/layout/preview_lockscreen_clock_0.xml
new file mode 100644
index 000000000..f2409cb58
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_0.xml
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_1.xml b/app/src/main/res/layout/preview_lockscreen_clock_1.xml
new file mode 100644
index 000000000..0e5db3dfb
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_1.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_10.xml b/app/src/main/res/layout/preview_lockscreen_clock_10.xml
new file mode 100644
index 000000000..098bdba90
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_10.xml
@@ -0,0 +1,330 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_11.xml b/app/src/main/res/layout/preview_lockscreen_clock_11.xml
new file mode 100644
index 000000000..0a2280d31
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_11.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_12.xml b/app/src/main/res/layout/preview_lockscreen_clock_12.xml
new file mode 100644
index 000000000..a790859e6
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_12.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_13.xml b/app/src/main/res/layout/preview_lockscreen_clock_13.xml
new file mode 100644
index 000000000..b239c3d34
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_13.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_14.xml b/app/src/main/res/layout/preview_lockscreen_clock_14.xml
new file mode 100644
index 000000000..e01568614
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_14.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_15.xml b/app/src/main/res/layout/preview_lockscreen_clock_15.xml
new file mode 100644
index 000000000..1a05ddccc
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_15.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_16.xml b/app/src/main/res/layout/preview_lockscreen_clock_16.xml
new file mode 100644
index 000000000..d525af2ed
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_16.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_17.xml b/app/src/main/res/layout/preview_lockscreen_clock_17.xml
new file mode 100644
index 000000000..7017df12a
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_17.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_18.xml b/app/src/main/res/layout/preview_lockscreen_clock_18.xml
new file mode 100644
index 000000000..166abdeba
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_18.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_19.xml b/app/src/main/res/layout/preview_lockscreen_clock_19.xml
new file mode 100644
index 000000000..2e989574b
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_19.xml
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_2.xml b/app/src/main/res/layout/preview_lockscreen_clock_2.xml
new file mode 100644
index 000000000..28aec1090
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_2.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_20.xml b/app/src/main/res/layout/preview_lockscreen_clock_20.xml
new file mode 100644
index 000000000..7d4c5146b
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_20.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_21.xml b/app/src/main/res/layout/preview_lockscreen_clock_21.xml
new file mode 100644
index 000000000..ebdfc8137
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_21.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_3.xml b/app/src/main/res/layout/preview_lockscreen_clock_3.xml
new file mode 100644
index 000000000..f068f084e
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_3.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_4.xml b/app/src/main/res/layout/preview_lockscreen_clock_4.xml
new file mode 100644
index 000000000..fd15c2ab0
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_4.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_5.xml b/app/src/main/res/layout/preview_lockscreen_clock_5.xml
new file mode 100644
index 000000000..3aef1d43c
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_5.xml
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_6.xml b/app/src/main/res/layout/preview_lockscreen_clock_6.xml
new file mode 100644
index 000000000..885157bf0
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_6.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_7.xml b/app/src/main/res/layout/preview_lockscreen_clock_7.xml
new file mode 100644
index 000000000..88bca5f6d
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_7.xml
@@ -0,0 +1,165 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_8.xml b/app/src/main/res/layout/preview_lockscreen_clock_8.xml
new file mode 100644
index 000000000..a1372f53a
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_8.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/preview_lockscreen_clock_9.xml b/app/src/main/res/layout/preview_lockscreen_clock_9.xml
new file mode 100644
index 000000000..1440208aa
--- /dev/null
+++ b/app/src/main/res/layout/preview_lockscreen_clock_9.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/qs_chip_layout.xml b/app/src/main/res/layout/qs_chip_layout.xml
new file mode 100644
index 000000000..b160aab37
--- /dev/null
+++ b/app/src/main/res/layout/qs_chip_layout.xml
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/qs_header_image_options.xml b/app/src/main/res/layout/qs_header_image_options.xml
new file mode 100644
index 000000000..4c3a03dc9
--- /dev/null
+++ b/app/src/main/res/layout/qs_header_image_options.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/searchpreference_fragment.xml b/app/src/main/res/layout/searchpreference_fragment.xml
new file mode 100644
index 000000000..1cd5d02fd
--- /dev/null
+++ b/app/src/main/res/layout/searchpreference_fragment.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/searchpreference_list_item_history.xml b/app/src/main/res/layout/searchpreference_list_item_history.xml
new file mode 100644
index 000000000..e1c518894
--- /dev/null
+++ b/app/src/main/res/layout/searchpreference_list_item_history.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/searchpreference_list_item_result.xml b/app/src/main/res/layout/searchpreference_list_item_result.xml
new file mode 100644
index 000000000..7425e34fe
--- /dev/null
+++ b/app/src/main/res/layout/searchpreference_list_item_result.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/searchpreference_preference.xml b/app/src/main/res/layout/searchpreference_preference.xml
new file mode 100644
index 000000000..9b46bae3e
--- /dev/null
+++ b/app/src/main/res/layout/searchpreference_preference.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/searchpreference_searchbar.xml b/app/src/main/res/layout/searchpreference_searchbar.xml
new file mode 100644
index 000000000..fbaa29661
--- /dev/null
+++ b/app/src/main/res/layout/searchpreference_searchbar.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/spinner_item.xml b/app/src/main/res/layout/spinner_item.xml
new file mode 100644
index 000000000..76fa56f90
--- /dev/null
+++ b/app/src/main/res/layout/spinner_item.xml
@@ -0,0 +1,30 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/text_clock_widget.xml b/app/src/main/res/layout/text_clock_widget.xml
new file mode 100644
index 000000000..3c39d5f79
--- /dev/null
+++ b/app/src/main/res/layout/text_clock_widget.xml
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/top_intro_preference.xml b/app/src/main/res/layout/top_intro_preference.xml
new file mode 100644
index 000000000..30c18b683
--- /dev/null
+++ b/app/src/main/res/layout/top_intro_preference.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_clock_preview_header.xml b/app/src/main/res/layout/view_clock_preview_header.xml
new file mode 100644
index 000000000..e925a8e99
--- /dev/null
+++ b/app/src/main/res/layout/view_clock_preview_header.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_clock_preview_lockscreen.xml b/app/src/main/res/layout/view_clock_preview_lockscreen.xml
new file mode 100644
index 000000000..a41973bc5
--- /dev/null
+++ b/app/src/main/res/layout/view_clock_preview_lockscreen.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_hooked_package_list.xml b/app/src/main/res/layout/view_hooked_package_list.xml
new file mode 100644
index 000000000..35ed82432
--- /dev/null
+++ b/app/src/main/res/layout/view_hooked_package_list.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_widget_colorpicker.xml b/app/src/main/res/layout/view_widget_colorpicker.xml
new file mode 100644
index 000000000..8ddc58fc1
--- /dev/null
+++ b/app/src/main/res/layout/view_widget_colorpicker.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_widget_slider.xml b/app/src/main/res/layout/view_widget_slider.xml
new file mode 100644
index 000000000..36270d3f5
--- /dev/null
+++ b/app/src/main/res/layout/view_widget_slider.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_widget_switch.xml b/app/src/main/res/layout/view_widget_switch.xml
new file mode 100644
index 000000000..3d56a701d
--- /dev/null
+++ b/app/src/main/res/layout/view_widget_switch.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml
new file mode 100644
index 000000000..006a1e405
--- /dev/null
+++ b/app/src/main/res/menu/bottom_nav_menu.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/header_browse_menu.xml b/app/src/main/res/menu/header_browse_menu.xml
new file mode 100644
index 000000000..c5b3e89c3
--- /dev/null
+++ b/app/src/main/res/menu/header_browse_menu.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/hooks_menu.xml b/app/src/main/res/menu/hooks_menu.xml
new file mode 100644
index 000000000..c3f87a54d
--- /dev/null
+++ b/app/src/main/res/menu/hooks_menu.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/searchpreference_more.xml b/app/src/main/res/menu/searchpreference_more.xml
new file mode 100644
index 000000000..3e4d50485
--- /dev/null
+++ b/app/src/main/res/menu/searchpreference_more.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 000000000..7353dbd1f
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 000000000..7353dbd1f
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 000000000..24b0b5cb5
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 000000000..a24e77a62
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 000000000..ecf718c4a
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 000000000..a890776d0
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 000000000..298b0f6b1
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 000000000..4e76353db
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 000000000..7764aa27e
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 000000000..7c34161a4
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 000000000..e0338aceb
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 000000000..66a285323
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/navigation/nav_home_page.xml b/app/src/main/res/navigation/nav_home_page.xml
new file mode 100644
index 000000000..cc2acd6bc
--- /dev/null
+++ b/app/src/main/res/navigation/nav_home_page.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/raw/buttons_illustration.json b/app/src/main/res/raw/buttons_illustration.json
new file mode 100644
index 000000000..bf4cfb266
--- /dev/null
+++ b/app/src/main/res/raw/buttons_illustration.json
@@ -0,0 +1 @@
+{"v":"5.5.2","fr":29.9700012207031,"ip":0,"op":90.0000036657751,"w":360,"h":320,"nm":"2019DL Next Track","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":2,"ty":4,"nm":"NEXT ACTIVE","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[838.25,743.75,0],"ix":2},"a":{"a":0,"k":[724.25,742.75,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.667,17.5],[17.5,17.5],[17.5,-17.5],[11.667,-17.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-17.5,17.5],[7.292,0],[-17.5,-17.5]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[726,742],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[139.128,139.128],"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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[23.61,0],[0,-23.61],[-23.61,0],[0,23.61]],"o":[[-23.61,0],[0,23.61],[23.61,0],[0,-23.61]],"v":[[0,-42.75],[-42.75,0],[0,42.75],[42.75,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.035294117647,0.827450980392,0.886274509804,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.035294119269,0.827450990677,0.886274516582,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[724.25,741.25],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[112.857,112.857],"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,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":32.0000013033867,"op":60.0000024438501,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"NEXT","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[838.25,742.25,0],"ix":2},"a":{"a":0,"k":[724.25,741.25,0],"ix":1},"s":{"a":0,"k":[175,175,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.667,17.5],[17.5,17.5],[17.5,-17.5],[11.667,-17.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-17.5,17.5],[7.292,0],[-17.5,-17.5]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.961000031116,0.964999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[726,742],"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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91.000003706506,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"PAUSE","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722.5,742.75,0],"ix":2},"a":{"a":0,"k":[726.786,747.5,0],"ix":1},"s":{"a":0,"k":[122.397,134,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5,17.5],[15,17.5],[15,-17.5],[5,-17.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-15,17.5],[-5,17.5],[-5,-17.5],[-15,-17.5]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.961000031116,0.964999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[727,747.75],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,130.603],"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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":3,"nm":"PLAY","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[724,720,0],"ix":2},"a":{"a":0,"k":[720,720,0],"ix":1},"s":{"a":0,"k":[130,130,100],"ix":6}},"ao":0,"ip":0,"op":90.0000036657751,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"PREVIOUS","parent":5,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[623.077,737.885,0],"ix":2},"a":{"a":0,"k":[726.923,741.731,0],"ix":1},"s":{"a":0,"k":[135,135,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.667,17.5],[17.5,17.5],[17.5,-17.5],[11.667,-17.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-17.5,17.5],[7.292,0],[-17.5,-17.5]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.952999997606,0.961000031116,0.964999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[726,742],"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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":2.00000008146167,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"touch/Media Control Outlines","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[1060,452,0],"e":[1060,458,0],"to":[0,1,0],"ti":[0,-1,0]},{"t":34.0000013848484}],"ix":2},"a":{"a":0,"k":[1060,452,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-18.348,-32.03],[0,0],[-32.031,18.349],[0,0],[18.348,32.03],[32.031,-18.348],[0,0]],"o":[[0,0],[18.349,32.03],[0,0],[32.03,-18.348],[-18.349,-32.03],[0,0],[-32.03,18.348]],"v":[[-61.877,35.445],[-61.877,35.445],[29.721,60.321],[37,56.151],[61.877,-35.446],[-29.721,-60.322],[-37,-56.152]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905882358551,0.745098054409,0.886274516582,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1060.249,452.831],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":31.0000012626559,"op":60.0000024438501,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"thumb/Media Control Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[720,720,0],"ix":2},"a":{"a":0,"k":[720,720,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-33.43,-21.946],[-21.946,33.428],[0,0],[50.785,33.34],[0,0],[9.093,-13.851]],"o":[[-21.946,33.43],[33.43,21.946],[0,0],[33.339,-50.786],[0,0],[-13.851,-9.093],[0,0]],"v":[[-151.549,111.071],[-130.757,211.337],[-30.491,190.545],[140.156,-69.225],[108.569,-221.548],[104.544,-224.19],[63,-215.575]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905882358551,0.745098054409,0.886274516582,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[390.983,700.724],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-21.201,-89.547],[89.547,-21.201],[21.201,89.547],[-83.219,25.551],[-3.616,0.856]],"o":[[21.201,89.547],[-89.546,21.202],[-20.345,-85.93],[3.501,-1.075],[89.547,-21.2]],"v":[[161.711,-38.388],[37.96,162.137],[-162.566,38.387],[-49.492,-159.24],[-38.815,-162.139]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905882358551,0.745098054409,0.886274516582,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[378.204,905.824],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"DEVICE Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[720,720,0],"ix":2},"a":{"a":0,"k":[720,720,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-13.653,-32.886],[0,0],[-32.886,13.651],[0,0],[13.651,32.886],[32.887,-13.651]],"o":[[-32.886,13.652],[0,0],[13.651,32.885],[0,0],[32.885,-13.651],[-13.653,-32.886],[0,0]],"v":[[-59.299,-45.19],[-94.126,39.074],[-94.126,39.075],[-9.862,73.901],[59.3,45.19],[94.127,-39.074],[9.862,-73.901]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905999995213,0.745000023935,0.885999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[979.793,990.154],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-12.526,-33.33],[0,0],[-33.331,12.528],[0,0],[12.527,33.33],[0,0],[33.33,-12.526]],"o":[[-33.331,12.527],[0,0],[12.526,33.33],[0,0],[33.33,-12.527],[0,0],[-12.527,-33.33],[0,0]],"v":[[-57.731,-47.179],[-95.4,35.854],[-95.399,35.854],[-12.367,73.523],[57.731,47.177],[95.399,-35.855],[95.399,-35.857],[12.367,-73.524]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905999995213,0.745000023935,0.885999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[986.613,843.005],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-14.035,0.017],[0,0],[0.017,14.034],[0,0],[14.035,-0.016],[0,0],[-0.016,-14.035],[0,0]],"o":[[0,0],[14.035,-0.016],[0,0],[-0.017,-14.035],[0,0],[-14.034,0.016],[0,0],[0.016,14.035]],"v":[[-212.278,476.714],[213.369,476.226],[238.751,450.786],[237.719,-451.331],[212.278,-476.714],[-213.369,-476.227],[-238.752,-450.786],[-237.719,451.33]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.113999998803,0.20800000359,0.395999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[717.858,728.82],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.034,30.069],[0,0],[-29.688,5.973],[0,0],[-29.418,-5.849]],"o":[[0,0],[-29.439,-6.127],[0,0],[-0.034,-30.284],[29.404,-5.916],[0,0],[0,0]],"v":[[-183.223,535.878],[-183.223,535.878],[-233.808,473.753],[-234.883,-464.438],[-183.884,-526.793],[25.753,-535.878],[234.917,-527.273]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.172999991623,0.231000010173,0.368999974868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[691.733,724.697],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[29.688,-5.973],[0,0],[0,0],[26.963,5.611],[0.034,30.069],[0,0],[-29.688,5.974],[0,0],[-29.418,-5.849],[-0.035,-30.283],[0,0]],"o":[[0,0],[-29.403,5.916],[0,0],[-29.439,-6.127],[0,0],[-0.034,-30.283],[29.404,-5.916],[0,0],[29.702,5.905],[0,0],[0.035,30.284]],"v":[[210.008,530.915],[210.008,530.915],[0.864,540],[-209.348,531.755],[-259.933,469.631],[-261.008,-468.562],[-210.009,-530.916],[-0.372,-540],[208.792,-531.395],[259.934,-469.157],[261.007,468.561]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.081999999402,0.149000010771,0.298000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[717.858,728.819],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[29.688,-5.973],[0,0],[0,0],[26.963,5.611],[0.034,30.069],[0,0],[-29.688,5.974],[0,0],[-29.418,-5.849],[-0.035,-30.283],[0,0]],"o":[[0,0],[-29.403,5.916],[0,0],[-29.439,-6.127],[0,0],[-0.034,-30.283],[29.404,-5.916],[0,0],[29.702,5.905],[0,0],[0.035,30.284]],"v":[[210.008,530.915],[210.008,530.915],[0.864,540],[-209.348,531.755],[-259.933,469.631],[-261.008,-468.562],[-210.009,-530.916],[-0.372,-540],[208.792,-531.395],[259.934,-469.157],[261.007,468.561]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.156862750649,0.286274522543,0.572549045086,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[717,722],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-131.851,-173.453],[121.271,181.008],[131.851,173.451],[-121.271,-181.008]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.573000021542,0.811999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[828.416,886.837],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[19.257,26.967],[26.967,-19.257]],"o":[[0,0],[0,0],[26.966,-19.257],[-19.257,-26.967],[0,0]],"v":[[-94.574,-8.423],[-24.838,89.233],[61.358,27.681],[75.317,-56.016],[-8.38,-69.976]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.573000021542,0.811999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[934.143,1007.487],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Volume down","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[980,614,0],"ix":2},"a":{"a":0,"k":[980,524,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.402,0],[0,0],[0,3.401],[0,0],[-3.401,0],[0,-3.401],[0,0]],"o":[[0,0],[-3.401,0],[0,0],[0,-3.401],[3.402,0],[0,0],[0,3.401]],"v":[[0,23.194],[0,23.194],[-6.186,17.009],[-6.186,-17.009],[0,-23.194],[6.185,-17.009],[6.185,17.009]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.156999999402,0.180000005984,0.187999994615,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[979.66,524.429],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Volume UP","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":31,"s":[980,514,0],"e":[975,514,0],"to":[-0.833,0,0],"ti":[0.833,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":32,"s":[975,514,0],"e":[975,514,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[975,514,0],"e":[980,514,0],"to":[0.833,0,0],"ti":[-0.833,0,0]},{"t":60.0000024438501}],"ix":2},"a":{"a":0,"k":[980,524,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.402,0],[0,0],[0,3.401],[0,0],[-3.401,0],[0,-3.401],[0,0]],"o":[[0,0],[-3.401,0],[0,0],[0,-3.401],[3.402,0],[0,0],[0,3.401]],"v":[[0,23.194],[0,23.194],[-6.186,17.009],[-6.186,-17.009],[0,-23.194],[6.185,-17.009],[6.185,17.009]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.156999999402,0.180000005984,0.187999994615,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[979.66,524.429],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"finger/Media Control Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.167,"y":0.167},"t":30,"s":[972,505,0],"e":[934,553,0],"to":[-6.333,8,0],"ti":[6,-11.333,0]},{"i":{"x":0.117,"y":1},"o":{"x":0.384,"y":0},"t":33,"s":[934,553,0],"e":[936,553,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.8,"y":0},"t":57,"s":[936,553,0],"e":[972,505,0],"to":[6,-11.333,0],"ti":[-6,8,0]},{"t":60.0000024438501}],"ix":2},"a":{"a":0,"k":[952,525,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-21.451,-30.698],[-30.698,21.452],[0,0],[21.452,30.698],[30.698,-21.452]],"o":[[-30.697,21.452],[21.452,30.698],[0,0],[30.697,-21.451],[-21.451,-30.697],[0,0]],"v":[[-127.622,2.974],[-144.364,97.399],[-49.939,114.14],[127.621,-2.975],[144.362,-97.399],[49.938,-114.141]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.007,0.847,0.573,0.812,0.545,0.876,0.659,0.849,1,0.906,0.745,0.886,0,1,0.599,0.99,1,0.98],"ix":9}},"s":{"a":0,"k":[0,0],"ix":5},"e":{"a":0,"k":[106,-72],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[972.5,510.072],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"finger 2/Media Control Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[980,677,0],"ix":2},"a":{"a":0,"k":[960,697,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-21.451,-30.697],[-30.698,21.451],[0,0],[21.452,30.698],[30.698,-21.452]],"o":[[-30.697,21.452],[21.452,30.699],[0,0],[30.697,-21.451],[-21.451,-30.697],[0,0]],"v":[[-127.622,2.974],[-144.364,97.398],[-49.939,114.142],[127.621,-2.974],[144.362,-97.399],[49.938,-114.141]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0.007,0.847,0.573,0.812,0.545,0.876,0.659,0.849,1,0.906,0.745,0.886,0,1,0.599,0.99,1,0.98],"ix":9}},"s":{"a":0,"k":[0,0],"ix":5},"e":{"a":0,"k":[134,-100],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[979.5,676.072],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"arm/Media Control Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[720,720,0],"ix":2},"a":{"a":0,"k":[720,720,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[64.191,89.89],[0,0],[-67.139,47.945],[0,0],[0,0],[0,0]],"o":[[0,0],[-89.89,64.192],[0,0],[-47.944,-67.138],[0,0],[0,0],[0,0],[0,0]],"v":[[369.93,100.984],[88.195,302.171],[-190.794,255.64],[-321.985,71.925],[-287.086,-137.317],[-190.739,-206.12],[-192.071,-205.112],[33.737,-366.363]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905999995213,0.745000023935,0.885999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[584.235,963.664],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-334.074,-1.341],[-334.074,318.829],[-30.989,317.913],[334.074,36.876],[105.26,-318.829]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905999995213,0.745000023935,0.885999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[334.074,1121.087],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":0,"nm":"Parasailing 200 Circle","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[720,720,0],"ix":2},"a":{"a":0,"k":[720,720,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1440,"h":1440,"ip":0,"op":900.000036657751,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Parasailing 200","sr":1,"ks":{"o":{"a":0,"k":25,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[720,720,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[1607.344,1660.57],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.03529400171,0.827450980392,0.886274988511,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.81568627451,0.807843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.672,14.285],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":932.000037961138,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Background Circle 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[180,160,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[25,25,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[848,848],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431379795,0.956862747669,0.956862747669,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[120.097,120.097],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90.0000036657751,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Next Track","tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[180,160,0],"ix":2},"a":{"a":0,"k":[720,720,0],"ix":1},"s":{"a":0,"k":[18,18,100],"ix":6}},"ao":0,"w":1440,"h":1440,"ip":0,"op":90.0000036657751,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/app/src/main/res/raw/dual_layer.json b/app/src/main/res/raw/dual_layer.json
new file mode 100644
index 000000000..807b16e6e
--- /dev/null
+++ b/app/src/main/res/raw/dual_layer.json
@@ -0,0 +1 @@
+{"nm":"Success","ddd":0,"h":512,"w":512,"meta":{"g":"@lottiefiles/toolkit-js 0.33.2"},"layers":[{"ty":4,"nm":"Shape Layer 2","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[160,160,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[160],"t":0},{"s":[880],"t":600}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":60,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Polystar 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sr","bm":0,"hd":false,"mn":"ADBE Vector Shape - Star","nm":"Polystar Path 1","ix":1,"d":1,"ir":{"a":0,"k":100,"ix":6},"is":{"a":0,"k":85,"ix":8},"pt":{"a":0,"k":10,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"or":{"a":0,"k":110,"ix":7},"os":{"a":0,"k":75,"ix":9},"r":{"a":0,"k":0,"ix":5},"sy":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.6157,0.1294,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"Shape Layer 1","sr":1,"st":0,"op":3600,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[160,160,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[256,256,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[360],"t":599}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":60,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Polystar 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sr","bm":0,"hd":false,"mn":"ADBE Vector Shape - Star","nm":"Polystar Path 1","ix":1,"d":1,"ir":{"a":0,"k":100,"ix":6},"is":{"a":0,"k":85,"ix":8},"pt":{"a":0,"k":10,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"or":{"a":0,"k":110,"ix":7},"os":{"a":0,"k":75,"ix":9},"r":{"a":0,"k":0,"ix":5},"sy":1},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0,0.6353,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2}],"v":"5.5.2","fr":60,"op":600,"ip":0,"assets":[]}
\ No newline at end of file
diff --git a/app/src/main/res/raw/lockscreen_illustration.json b/app/src/main/res/raw/lockscreen_illustration.json
new file mode 100644
index 000000000..957ced1e0
--- /dev/null
+++ b/app/src/main/res/raw/lockscreen_illustration.json
@@ -0,0 +1 @@
+{"v":"5.5.2","fr":29.9700012207031,"ip":0,"op":160.000006516934,"w":1440,"h":1280,"nm":"Easy unlock Stingray","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Mask","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,642,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-234.169,0],[0,-234.169],[234.169,0],[0,234.169]],"o":[[234.169,0],[0,234.169],[-234.169,0],[0,-234.169]],"v":[[0,-424],[424,0],[0,424],[-424,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.878431379795,0.956862747669,0.956862747669,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[120.097,120.097],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":230.000009368092,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Hand","tt":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":106,"s":[100],"e":[0]},{"t":116.000004724777}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[910.64,1175.523,0],"ix":2},"a":{"a":0,"k":[720,500,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":80,"s":[97.864,97.864,100],"e":[85.681,85.681,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":90,"s":[85.681,85.681,100],"e":[85.681,85.681,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":106,"s":[85.681,85.681,100],"e":[97.864,97.864,100]},{"t":116.000004724777}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[10.162,37.925],[0,0],[0,0],[0,0],[0,0],[3.306,4.241],[1.443,1.38],[1.043,0.821],[1.114,0.716],[1.178,0.607],[0.603,0.276],[2.596,0.623],[0.658,0.125],[2.035,0.081],[0.682,-0.007],[2.07,-0.336],[1.38,-0.37],[0.865,-0.294],[0.825,-0.34],[0.49,-0.226],[1.154,-0.677],[0.571,-0.374],[1.774,-1.685],[1.23,-1.563],[-3.513,-13.111],[0,0],[0,0],[2.132,-0.571],[0.571,2.131],[0,0],[8.816,6.281],[1.338,0.773],[0.687,0.354],[1.438,0.575],[3.069,0.581],[1.57,0.141],[1.594,-0.015],[4.025,-1.079],[2.098,-0.898],[2.833,-2.046],[0.723,-0.589],[0.621,-0.562],[1.043,-1.148],[0.707,-0.899],[0.449,-0.63],[0.773,-1.338],[1.012,-2.931],[-2.589,-9.661],[0,0],[0,0],[0,0],[2.195,-0.588],[0.588,2.194],[0,0],[0,0],[0,0],[4.587,5.328],[1.123,1.074],[1.217,0.957],[0.63,0.449],[1.338,0.772],[12.881,-3.452],[1.525,-0.58],[3.712,-2.892],[2.393,-3.041],[0.835,-1.299],[0.963,-2.109],[0.506,-1.465],[-2.589,-9.661],[0,0],[0,0],[2.262,-0.605],[0.606,2.261],[0,0],[8.815,6.281],[1.338,0.773],[0.687,0.354],[1.438,0.574],[3.071,0.581],[1.569,0.14],[1.593,-0.016],[4.025,-1.079],[2.098,-0.898],[1.769,-1.045],[0.825,-0.56],[0.378,-0.273],[0.722,-0.589],[0.621,-0.563],[1.257,-1.449],[1.925,-4.22],[0.505,-1.465],[-2.588,-9.661],[0,0],[0,0],[0,0],[0,0],[0.661,-1.452],[-9.074,-26.84],[-26.744,-14.36],[-15.967,-1.019],[0,0],[0,0]],"o":[[18.923,-31.083],[0,0],[0,0],[0,0],[0,0],[-1.479,-5.52],[-1.239,-1.591],[-0.963,-0.92],[-1.042,-0.82],[-1.114,-0.716],[-0.588,-0.303],[-2.411,-1.1],[-0.648,-0.156],[-1.974,-0.374],[-0.678,-0.027],[-2.049,0.02],[-1.381,0.224],[-0.895,0.24],[-0.856,0.291],[-0.502,0.208],[-1.233,0.568],[-0.593,0.346],[-2.078,1.36],[-1.453,1.379],[-7.796,9.905],[0,0],[0,0],[0.572,2.132],[-2.132,0.572],[0,0],[-3.02,-11.272],[-1.259,-0.897],[-0.669,-0.386],[-1.373,-0.708],[-2.875,-1.149],[-1.536,-0.291],[-1.569,-0.14],[-3.983,0.04],[-2.269,0.608],[-3.307,1.415],[-0.76,0.549],[-0.652,0.532],[-1.154,1.047],[-0.77,0.848],[-0.479,0.608],[-0.897,1.259],[-1.545,2.676],[-3.035,8.793],[0,0],[0,0],[0,0],[0.588,2.194],[-2.193,0.588],[0,0],[0,0],[0,0],[-1.941,-7.246],[-1.019,-1.184],[-1.122,-1.073],[-0.608,-0.479],[-1.259,-0.897],[-10.704,-6.18],[-1.61,0.432],[-4.577,1.738],[-3.093,2.41],[-0.958,1.216],[-1.254,1.951],[-0.643,1.407],[-3.035,8.793],[0,0],[0,0],[0.606,2.261],[-2.261,0.606],[0,0],[-3.02,-11.271],[-1.26,-0.897],[-0.669,-0.386],[-1.373,-0.708],[-2.874,-1.15],[-1.534,-0.291],[-1.57,-0.141],[-3.983,0.039],[-2.269,0.607],[-1.925,0.823],[-0.865,0.511],[-0.387,0.263],[-0.759,0.549],[-0.652,0.531],[-1.431,1.296],[-3.049,3.512],[-0.642,1.407],[-3.035,8.793],[0,0],[0,0],[0,0],[0,0],[-0.726,1.436],[-12.49,27.424],[9.011,26.654],[15.017,8.063],[0,0],[0,0],[0,0]],"v":[[209.185,96.05],[224.616,-11.429],[172.581,-205.626],[172.603,-205.632],[167.833,-223.431],[150.944,-286.459],[143.632,-301.18],[139.601,-305.641],[136.591,-308.254],[133.354,-310.56],[129.914,-312.546],[128.127,-313.414],[120.599,-316.01],[118.638,-316.431],[112.619,-317.117],[110.578,-317.148],[104.391,-316.618],[100.247,-315.729],[97.612,-314.918],[95.092,-313.969],[93.604,-313.319],[90.021,-311.451],[88.276,-310.37],[82.482,-305.797],[78.453,-301.376],[70.977,-265.032],[75.697,-247.415],[80.838,-228.229],[78.012,-223.335],[73.118,-226.16],[58.435,-280.955],[39.832,-307.774],[35.934,-310.28],[33.9,-311.39],[29.681,-313.316],[20.745,-315.923],[16.085,-316.572],[11.339,-316.76],[-0.712,-315.104],[-7.262,-312.831],[-16.485,-307.612],[-18.706,-305.903],[-20.615,-304.262],[-23.912,-300.969],[-26.139,-298.358],[-27.531,-296.501],[-30.037,-292.603],[-33.883,-284.173],[-34.861,-255.957],[-23.78,-214.602],[-23.78,-214.601],[-20.209,-201.274],[-23.118,-196.237],[-28.155,-199.145],[-31.726,-212.473],[-37.011,-232.197],[-50.128,-281.15],[-60.147,-300.141],[-63.363,-303.53],[-66.874,-306.577],[-68.731,-307.969],[-72.629,-310.474],[-109.275,-315.299],[-113.98,-313.78],[-126.451,-306.768],[-134.702,-298.553],[-137.393,-294.777],[-140.722,-288.679],[-142.446,-284.368],[-143.424,-256.152],[-125.054,-187.596],[-121.483,-174.268],[-124.481,-169.077],[-129.672,-172.074],[-204.581,-451.637],[-223.183,-478.455],[-227.082,-480.961],[-229.116,-482.071],[-233.335,-483.996],[-242.272,-486.604],[-246.93,-487.252],[-251.676,-487.44],[-263.728,-485.785],[-270.277,-483.512],[-275.816,-480.701],[-278.352,-479.095],[-279.501,-478.293],[-281.721,-476.584],[-283.63,-474.942],[-287.674,-470.83],[-295.175,-459.165],[-296.898,-454.854],[-297.877,-426.638],[-228.374,-167.251],[-218.416,-130.086],[-218.375,-130.097],[-172.913,39.57],[-175.006,43.899],[-179.229,128.277],[-124.721,192.718],[-77.728,206.18],[5.282,521.642],[300.465,442.547]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905999995213,0.745000023935,0.885999971278,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[747.866,512.544],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-12.49,27.425],[-0.727,1.436],[0,0],[0,0],[0,0],[2.094,-0.567],[0,0],[-2.99,-11.033],[0,0],[-1.099,-2.424]],"o":[[0.661,-1.451],[0,0],[0,0],[0,0],[-2.096,0.383],[0,0],[-11.033,2.989],[0,0],[0.719,2.652],[-9.073,-26.84]],"v":[[39.161,63.385],[41.255,59.056],[-4.208,-110.611],[-4.249,-110.599],[-14.208,-147.763],[-20.495,-146.362],[-23.701,-145.492],[-38.264,-120.103],[32.193,140.149],[34.938,147.763]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.573000021542,0.811999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[533.699,493.057],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.262,-0.606],[0.605,2.262],[0,0],[0,0],[0,0],[-2.261,0.606],[0.606,2.261]],"o":[[0.605,2.261],[-2.261,0.606],[0,0],[0,0],[0,0],[0.606,2.262],[2.261,-0.606],[0,0]],"v":[[2.01,-9.562],[-0.989,-4.371],[-6.179,-7.369],[-6.187,-7.395],[-6.187,-7.394],[-2.609,5.959],[2.583,8.957],[5.581,3.766]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.573000021542,0.811999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[620.802,334.511],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.004,-0.002],[2.085,-0.558],[0.621,2.057],[0.004,-0.001],[0,0],[-2.132,0.571],[0.571,2.132]],"o":[[-0.004,0.001],[0.479,2.086],[-2.091,0.56],[-0.005,0],[0,0],[0.572,2.132],[2.132,-0.571],[0,0]],"v":[[1.81,-9.328],[1.797,-9.323],[-1.053,-4.571],[-5.903,-7.279],[-5.916,-7.277],[-2.377,5.931],[2.518,8.757],[5.344,3.862]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.573000021542,0.811999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[823.359,280.452],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.193,0.588],[0.588,2.194],[0,0],[2.193,-0.588],[0.588,2.194],[0,0]],"o":[[2.194,-0.588],[0,0],[0.587,2.194],[-2.195,0.588],[0,0],[0.588,2.194]],"v":[[2.556,8.888],[5.465,3.851],[1.893,-9.476],[-1.014,-4.44],[-6.052,-7.348],[-2.482,5.98]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.573000021542,0.811999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[722.192,307.419],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":230.000009368092,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"UI","parent":4,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":98,"s":[100],"e":[0]},{"t":103.000004195276}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[716.429,502.381,0],"ix":2},"a":{"a":0,"k":[720,500,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-2.079,0.81],[-2.296,0],[-2.164,-0.88],[-1.558,-1.488],[-0.932,-2.066],[0,-2.269],[0.93,-2.067],[1.559,-1.483],[2.162,-0.884],[2.369,0],[2.633,1.414],[1.593,2.431],[0.145,2.898],[0,0],[-1.403,-2.129],[-2.309,-1.231],[-2.705,0],[-2.368,1.306],[-1.378,2.262],[0,2.633],[1.377,2.244],[2.368,1.319],[2.78,0],[2.333,-1.281],[1.376,-2.125],[0,0],[-0.026,0.021],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[1.618,-1.476],[2.077,-0.81],[2.369,0],[2.162,0.885],[1.559,1.484],[0.93,2.067],[0,2.274],[-0.932,2.067],[-1.558,1.489],[-2.164,0.881],[-3.068,0],[-2.634,-1.413],[-1.596,-2.426],[0,0],[0.144,2.538],[1.402,2.124],[2.306,1.232],[2.78,0],[2.368,-1.302],[1.377,-2.26],[0,-2.633],[-1.378,-2.249],[-2.368,-1.318],[-2.755,0],[-2.331,1.282],[0,0],[0,-0.024],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[10.84,-24.886],[-6.742,-24.886],[-12.107,-1.829],[-6.56,-5.256],[-0.001,-6.47],[6.797,-5.149],[12.378,-1.593],[16.114,3.735],[17.508,10.241],[16.114,16.746],[12.378,22.074],[6.797,25.629],[-0.001,26.952],[-8.555,24.832],[-14.897,19.066],[-17.508,11.075],[-15.406,11.001],[-13.086,17.999],[-7.521,23.038],[-0.001,24.886],[7.721,22.926],[13.34,17.582],[15.406,10.241],[13.34,2.921],[7.721,-2.428],[-0.001,-4.405],[-7.631,-2.483],[-13.195,2.627],[-14.971,1.577],[-14.935,1.507],[-14.971,1.507],[-8.373,-26.952],[-8.011,-26.952],[10.84,-26.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[778.075,335.373],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.893,-1.959],[1.508,-1.413],[2.101,-0.835],[2.296,0],[2.103,0.835],[1.511,1.414],[0.893,1.955],[0,2.125],[0,0],[-1.339,-2.104],[-2.284,-1.232],[-2.706,0],[-2.284,1.232],[-1.341,2.104],[0,2.488],[1.342,2.116],[2.285,1.232],[2.707,0],[0,0],[0,0],[-2.212,2.062],[0,2.914],[2.211,2.067],[3.118,0],[2.211,-2.062],[0,-2.902],[0,0],[-1.195,1.946],[-2.054,1.12],[-2.416,0],[-2.054,-1.124],[-1.197,-1.943],[0,-2.274],[1.436,-2.066],[2.321,-1.017],[-2.114,-2.728],[0,-3.41]],"o":[[-0.895,1.955],[-1.511,1.414],[-2.104,0.835],[-2.297,0],[-2.101,-0.835],[-1.51,-1.413],[-0.895,-1.959],[0,0],[0,2.488],[1.342,2.104],[2.284,1.232],[2.707,0],[2.285,-1.232],[1.342,-2.104],[0,-2.488],[-1.341,-2.112],[-2.284,-1.236],[0,0],[0,0],[3.118,0],[2.211,-2.067],[0,-2.91],[-2.212,-2.062],[-3.117,0],[-2.212,2.067],[0,0],[0,-2.274],[1.196,-1.943],[2.053,-1.124],[2.416,0],[2.055,1.12],[1.196,1.946],[0,2.513],[-1.439,2.063],[3.36,1.087],[2.114,2.732],[0,2.125]],"v":[[15.623,17.745],[12.017,22.801],[6.598,26.174],[-0.001,27.422],[-6.599,26.174],[-12.018,22.801],[-15.624,17.745],[-16.965,11.62],[-14.936,11.62],[-12.925,18.505],[-7.487,23.508],[-0.001,25.359],[7.484,23.508],[12.922,18.505],[14.935,11.62],[12.922,4.713],[7.484,-0.305],[-0.001,-2.157],[-0.001,-2.19],[-0.001,-4.224],[7.993,-7.319],[11.31,-14.789],[7.993,-22.258],[-0.001,-25.354],[-7.993,-22.258],[-11.311,-14.805],[-13.377,-14.805],[-11.583,-21.133],[-6.706,-25.734],[-0.001,-27.422],[6.705,-25.734],[11.581,-21.133],[13.375,-14.805],[11.219,-7.936],[5.581,-3.315],[13.792,2.411],[16.965,11.62]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[735.3,334.974],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-0.471],[0.327,-0.327],[0.481,0],[0.326,0.326],[0,0.471],[-0.327,0.338],[-0.484,0],[-0.326,-0.339]],"o":[[0,0.471],[-0.326,0.326],[-0.484,0],[-0.327,-0.327],[0,-0.471],[0.326,-0.339],[0.481,0],[0.327,0.338]],"v":[[1.704,8.771],[1.214,9.97],[0.001,10.457],[-1.214,9.97],[-1.704,8.771],[-1.214,7.56],[0.001,7.051],[1.214,7.56]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.481,0],[0.326,0.338],[0,0.471],[-0.327,0.339],[-0.484,0],[-0.326,-0.339],[0,-0.472],[0.327,-0.335]],"o":[[-0.484,0],[-0.327,-0.335],[0,-0.472],[0.326,-0.339],[0.481,0],[0.327,0.339],[0,0.471],[-0.326,0.338]],"v":[[0.001,-7.014],[-1.214,-7.522],[-1.704,-8.733],[-1.214,-9.949],[0.001,-10.457],[1.214,-9.949],[1.704,-8.733],[1.214,-7.522]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[707.895,336.859],"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":"Group 6","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.331,-23.799],[-6.233,-15.969],[-7.395,-17.672],[5.331,-26.336],[5.331,-26.406],[7.394,-26.406],[7.394,26.406],[5.365,26.406]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[684.839,335.084],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[5.33,-23.799],[-6.233,-15.969],[-7.395,-17.672],[5.33,-26.336],[5.33,-26.406],[7.395,-26.406],[7.395,26.406],[5.365,26.406]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[654.679,335.084],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[722.509,335.064],"ix":2},"a":{"a":0,"k":[720.509,335.064],"ix":1},"s":{"a":0,"k":[142.565,142.565],"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":"Group 11","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-10.776,9.435],[10.776,9.435],[0,-7.59]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[14.62,11.551],[-14.62,11.551],[0,-11.55]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[641.134,632.284],"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":"Group 9","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.763,0],[0,-5.762],[-5.762,0],[0,5.762]],"o":[[-5.762,0],[0,5.762],[5.763,0],[0,-5.762]],"v":[[0,-10.45],[-10.45,-0.001],[0,10.448],[10.448,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[6.93,0],[0,6.928],[-6.93,0],[0,-6.928]],"o":[[-6.93,0],[0,-6.928],[6.93,0],[0,6.928]],"v":[[0,12.565],[-12.565,-0.001],[0,-12.565],[12.565,-0.001]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[787.823,635.941],"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":"Group 10","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16.4,0],[0,-16.4],[-16.4,0],[0,16.4]],"o":[[-16.4,0],[0,16.4],[16.4,0],[0,-16.4]],"v":[[0,-29.696],[-29.695,0],[0,29.695],[29.695,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-15.828,0],[0,-15.828],[15.829,0],[0,15.828]],"o":[[15.829,0],[0,15.828],[-15.828,0],[0,-15.828]],"v":[[0,-28.707],[28.706,0],[0,28.705],[-28.706,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.035294119269,0.827450990677,0.886274516582,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[641.692,635.981],"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":"Group 12","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16.4,0],[0,-16.4],[-16.4,0],[0,16.4]],"o":[[-16.4,0],[0,16.4],[16.4,0],[0,-16.4]],"v":[[0,-29.696],[-29.695,0],[0,29.695],[29.695,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-15.828,0],[0,-15.828],[15.829,0],[0,15.828]],"o":[[15.829,0],[0,15.828],[-15.828,0],[0,-15.828]],"v":[[0,-28.707],[28.706,0],[0,28.705],[-28.706,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.035294119269,0.827450990677,0.886274516582,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[788.191,635.981],"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":"Group 13","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-9.1,9.102],[9.099,9.102],[9.099,-9.102],[-9.1,-9.102]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.216,11.219],[-11.216,11.219],[-11.216,-11.219],[11.216,-11.219]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[714.809,635.279],"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":"Group 11","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[16.4,0],[0,-16.4],[-16.4,0],[0,16.4]],"o":[[-16.4,0],[0,16.4],[16.4,0],[0,-16.4]],"v":[[0,-29.696],[-29.695,0],[0,29.695],[29.695,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-15.828,0],[0,-15.828],[15.829,0],[0,15.828]],"o":[[15.829,0],[0,15.828],[-15.828,0],[0,-15.828]],"v":[[0,-28.707],[28.706,0],[0,28.705],[-28.707,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.035294119269,0.827450990677,0.886274516582,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[714.941,635.981],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[714.941,635.981],"ix":2},"a":{"a":0,"k":[714.941,635.981],"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":"Group 14","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[714.941,718.862],"ix":2},"a":{"a":0,"k":[714.941,635.981],"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":"Group 15","np":0,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[722.941,635.981],"ix":2},"a":{"a":0,"k":[714.941,635.981],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[100],"e":[10]},{"t":92.0000037472368}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":6,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90.578,90.578],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.035294119269,0.827450990677,0.886274516582,1],"ix":3},"o":{"a":0,"k":50,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[713.803,719.658],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90.578,90.578],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.035294119269,0.827450990677,0.886274516582,1],"ix":3},"o":{"a":0,"k":70,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[713.803,719.658],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[129.194,129.194],"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 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90.578,90.578],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.035294119269,0.827450990677,0.886274516582,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[713.803,719.658],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[156.534,156.534],"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 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[723.23,718.862],"ix":2},"a":{"a":0,"k":[714.941,718.862],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833],"y":[0.833,0.833]},"o":{"x":[0.167,0.167],"y":[0.167,0.167]},"t":90,"s":[52.194,52.194],"e":[156.194,156.194]},{"t":98.0000039916218}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":92,"s":[100],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":98,"s":[100],"e":[0]},{"t":103.000004195276}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90.578,90.578],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":70,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[722.683,719.066],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[66.076,66.076],"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,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90.578,90.578],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":35,"ix":4},"w":{"a":0,"k":17,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[722.683,719.066],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[24.745,24.745],"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 2","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":230.000009368092,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Device","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[720,615.721,0],"ix":2},"a":{"a":0,"k":[720,500,0],"ix":1},"s":{"a":0,"k":[84.458,84.458,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[20.661,-4.157],[-0.025,-21.279],[0,0],[-20.686,-4.305],[0,0],[0,0]],"o":[[-20.671,-4.11],[0,0],[-20.862,4.197],[0,0],[0.024,21.13],[0,0],[0,0],[0,0]],"v":[[165.06,-370.505],[18.084,-376.552],[-129.224,-370.168],[-165.06,-326.353],[-164.305,332.899],[-128.76,376.552],[-113.541,337.857],[149.94,-332.062]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":10,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[701.06,496.517],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.861,-0.012],[0,0],[0,0],[-0.011,-9.862],[0,0],[-9.861,0.011],[0,0],[0,0],[0.01,9.863]],"o":[[-0.011,-9.862],[0,0],[0,0],[-9.862,0.012],[0,0],[0.012,9.861],[0,0],[0,0],[9.861,-0.01],[0,0]],"v":[[167.041,-317.143],[149.164,-334.979],[131.596,-334.958],[-149.93,-334.636],[-167.766,-316.759],[-167.042,317.143],[-149.164,334.979],[-131.885,334.961],[149.932,334.636],[167.768,316.759]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.113999998803,0.20800000359,0.395999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[719.797,499.414],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100.3,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":105,"s":[100],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":110,"s":[0],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":150,"s":[0],"e":[100]},{"t":160.000006516934}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.15,0],[0,0],[0,12.15],[-12.15,0],[0,0],[0,-12.15]],"o":[[0,0],[-12.15,0],[0,-12.15],[0,0],[12.15,0],[0,12.15]],"v":[[124,22],[-124,22],[-146,0],[-124,-22],[124,-22],[146,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.980000035903,0.980000035903,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[683,570.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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-43.354],[43.354,0],[0,43.354],[-43.354,0]],"o":[[0,43.354],[-43.354,0],[0,-43.354],[43.354,0]],"v":[[78.5,0],[0,78.5],[-78.5,0],[0,-78.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219999994016,0.898000021542,0.769000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[683,226],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"o":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"v":[[22,0],[0,22],[-22,0],[0,-22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219999994016,0.898000021542,0.769000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[803.5,653.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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"o":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"v":[[22,0],[0,22],[-22,0],[0,-22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219999994016,0.898000021542,0.769000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[743.25,653.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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"o":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"v":[[22,0],[0,22],[-22,0],[0,-22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219999994016,0.898000021542,0.769000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[683,653.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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"o":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"v":[[22,0],[0,22],[-22,0],[0,-22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219999994016,0.898000021542,0.769000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[622.75,653.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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"o":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"v":[[22,0],[0,22],[-22,0],[0,-22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.219999994016,0.898000021542,0.769000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[562.5,653.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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-10.391,0],[0,0],[0,10.39],[0,0],[10.39,0],[0,0],[0,-10.39],[0,0]],"o":[[0,0],[10.39,0],[0,0],[0,-10.39],[0,0],[-10.391,0],[0,0],[0,10.39]],"v":[[-157.568,329.443],[157.568,329.443],[176.383,310.63],[176.383,-310.629],[157.568,-329.443],[-157.568,-329.443],[-176.383,-310.629],[-176.383,310.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.626999978458,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[683,359.678],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[99,106.343],"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":"Group 12","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[719.132,500.826],"ix":2},"a":{"a":0,"k":[683,359.678],"ix":1},"s":{"a":0,"k":[94.919,94.919],"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":"Group 6","np":8,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.086,-0.006],[0,0],[20.871,4.15],[0,0],[20.661,-4.156],[-0.025,-21.279],[0,0],[-20.687,-4.305],[0,0],[-20.662,4.157],[0.024,21.281],[0,0],[-0.045,0],[0,0],[0.058,-0.003]],"o":[[-0.088,0],[0,0],[-0.025,-21.279],[-20.671,-4.109],[0,0],[-20.862,4.198],[0,0],[0.024,21.13],[18.946,3.943],[0,0],[20.861,-4.198],[0,0],[0.045,0.001],[0,0],[-0.06,0],[0,0]],"v":[[180.308,-217.644],[180.053,-217.618],[179.924,-329.67],[143.987,-373.403],[-2.988,-379.449],[-150.296,-373.066],[-186.132,-329.251],[-185.378,330.001],[-149.832,373.655],[-2.12,379.449],[144.843,373.065],[180.679,329.249],[180.176,-109.57],[180.308,-109.556],[180.308,-146.328],[180.134,-146.31]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.081999999402,0.149000010771,0.298000021542,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[722.024,499.415],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":230.000009368092,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Green Circle - 25%","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722,642,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-234.169,0],[0,-234.169],[234.169,0],[0,234.169]],"o":[[234.169,0],[0,234.169],[-234.169,0],[0,-234.169]],"v":[[0,-424],[424,0],[0,424],[-424,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.815686285496,0.807843148708,1],"ix":4},"o":{"a":0,"k":25,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-4],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[120.097,120.097],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":160.000006516934,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/app/src/main/res/raw/loop.json b/app/src/main/res/raw/loop.json
new file mode 100644
index 000000000..0c7983f3a
--- /dev/null
+++ b/app/src/main/res/raw/loop.json
@@ -0,0 +1 @@
+{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.20","a":"","k":"","d":"","tc":""},"fr":24,"ip":0,"op":168,"w":500,"h":500,"nm":"Relax","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Main_Null","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[250,229.99999999999997,0],"to":[0,-6.667,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84,"s":[250,190,0],"to":[0,0,0],"ti":[0,-6.667,0]},{"t":168,"s":[250,229.99999999999997,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":169,"op":169,"st":0,"bm":0,"hidden":0},{"ddd":0,"ind":2,"ty":4,"nm":"Hair_Front","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.687,-1.629],[1.152,0.839]],"o":[[0,0],[5.37,12.739],[-20.221,-14.712]],"v":[[-21.906,-85.944],[-23.528,-86.59],[0.666,-64.276]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.176470592618,0.301960796118,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 3","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.25,-4],[0,0],[-2.25,3.25],[-2.75,6.5]],"o":[[0,0],[-0.25,4],[0,0],[2.25,-3.25],[2.75,-6.5]],"v":[[-26.5,-88.5],[-40.75,-52.75],[-37.5,-42.75],[-30.292,-54.26],[-22.288,-62.747]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.176470592618,0.301960796118,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.25,-0.25],[-7.558,-9.448],[0.394,-21.172],[0,0],[1,1]],"o":[[-2.25,0.25],[30.882,38.618],[-0.312,17.851],[0,0],[-1,-1]],"v":[[-7,-100.75],[-24.75,-90],[22.25,-43.25],[26.75,-48.75],[19.25,-93]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.176470592618,0.301960796118,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":170,"op":170,"st":-74,"bm":0,"hidden":-74},{"ddd":0,"ind":3,"ty":4,"nm":"Top","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2,40,0],"ix":2},"a":{"a":0,"k":[133.596,126.196,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-16.736,5.563],[-2.848,-4.49],[1.915,6.169],[2.102,16.813],[2.029,-11.435],[15.736,-10.247],[0,0],[2.53,-7.764],[-0.694,10.927],[-7.901,-6.186],[-10.216,-0.238]],"o":[[10.001,-3.324],[0.652,5.76],[-2.414,-7.778],[0,0],[-19.781,-13.547],[-2.458,-10.963],[-2.314,17.284],[-1.878,5.764],[2.556,-1.073],[11.553,9.046],[10.035,0.234]],"v":[[163.595,143.52],[173.444,119.186],[179.774,167.313],[172.487,128.016],[168.628,155.743],[100.11,154.943],[95.02,130.329],[88.202,165.23],[93.04,118.519],[101.247,141.132],[132.561,142.462]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.9019607843137255,1,0.7803921568627451,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.481,-12.015],[-1.24,-4.105],[1.915,6.169],[2.102,16.813],[2.692,-8.613],[2.616,8.637],[0,0],[2.53,-7.764],[-0.83,2.661],[-0.904,4.192],[-3.599,9.582],[-7.764,9.41],[6.69,25.848],[-2.146,-1.931],[-5.384,-6.998]],"o":[[4.522,11.403],[0.867,4.199],[0.806,2.669],[-2.414,-7.778],[0,0],[-2.691,8.614],[-2.616,-8.638],[-2.314,17.284],[-1.878,5.764],[1.276,-4.094],[2.586,-11.992],[5.858,-15.593],[-5.134,19.39],[1.337,1.675],[10.768,9.691],[5.384,6.999]],"v":[[189.923,109.627],[196.845,145.77],[199.944,158.186],[179.774,167.313],[172.487,128.016],[165.623,166.663],[102.809,165.801],[95.02,130.329],[88.202,165.23],[68.29,159.519],[71.497,147.132],[77.311,108.462],[113.23,80.306],[151.406,78.847],[156.586,84.235],[184.581,98.771]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.8745098039215686,0.9686274509803922,0.7568627450980392,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":169,"op":169,"st":0,"bm":0,"hidden":0},{"ddd":0,"ind":4,"ty":4,"nm":"Pant","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2,40,0],"ix":2},"a":{"a":0,"k":[133.596,126.196,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.742,18.113],[0,0],[-1.615,-5.384],[-2.154,-2.155],[-23.687,-8.614],[27.261,-6.586]],"o":[[0,0],[0,0],[1.616,5.383],[0,0],[0,0],[9.886,-6.086]],"v":[[167.354,183.833],[168.43,187.064],[172.16,194.601],[177.006,208.637],[226.573,211.078],[166.585,213.407]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.384313732386,0.670588254929,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 5","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.176,-5.895],[0,0],[0,0],[-1.662,5.37],[0,0],[0,0]],"o":[[-32.426,-7.395],[23.763,-8.406],[2.172,-2.135],[1.662,-5.369],[0,0],[-5.059,23.63]],"v":[[101.272,214.341],[39.442,212.667],[90.282,210.663],[95.754,196.42],[99.05,188.912],[99.405,185.066]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.384313732386,0.670588254929,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 4","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.063,-5.663],[0,0],[0,0],[8.595,2.23],[0,0],[-15.074,-0.73],[0,0],[8.032,2.311],[11.778,2.748],[0,0],[-10.899,-3.607]],"o":[[6.312,5.462],[0,0],[0,0],[-8.594,-2.228],[-6.255,-7.775],[15.074,0.73],[-2.846,-5.596],[-29.505,-8.488],[-12.966,-3.026],[0.746,-0.733],[44.531,14.736]],"v":[[116.784,238.484],[123.746,255.436],[82.854,256.53],[36.556,255.875],[23.226,249.596],[40.522,251.591],[119.067,250.042],[111.726,235.309],[69.068,222.447],[47.157,227.163],[70.066,221.584]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.384313732386,0.670588254929,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[13.936,-0.155],[-11.91,-9.191],[-30.977,2.618],[-1.013,16.756],[5.384,-3.229],[8.614,-2.154],[0,0],[0,0],[2.171,-0.158],[9.436,0.885],[5.636,1.039],[5.921,0],[-2.55,-1.37],[-20.169,2.148],[-0.494,-0.369],[14.229,-2.47]],"o":[[6.686,4.345],[0,0],[0,0],[2.691,7.538],[0,0],[-8.613,2.154],[0,0],[0,0],[0,0],[-4.689,-4.24],[-2.117,-0.39],[3.959,-1.032],[10.977,5.897],[14.134,-1.505],[0.718,0.535],[-17.826,3.095]],"v":[[138.66,235.601],[173.006,248.137],[236.073,247.578],[248.609,226.19],[243.975,247.898],[231.342,254.321],[184.043,254.571],[176.756,254.571],[171.939,254.245],[162.66,246.561],[141.335,241.407],[127.608,230.946],[135.62,232.549],[185.675,221.688],[208.137,226.578],[183.89,223.197]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.403921574354,0.384313732386,0.670588254929,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 2","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.383,5.613],[0,0],[-1.615,-5.384],[-2.154,-2.155],[-23.687,-8.614],[-2.692,-7.537],[5.384,-3.229],[8.614,-2.154],[0,0],[0,0],[2.171,-0.158],[9.436,0.885],[5.636,1.039],[5.921,0],[6.562,-5.788],[0,0],[0,0],[8.595,2.23],[0,0],[-2.758,7.514],[0,0],[0,0],[-1.662,5.37],[0,0],[0,0]],"o":[[0,0],[0,0],[1.616,5.383],[0,0],[0,0],[2.691,7.538],[0,0],[-8.613,2.154],[0,0],[0,0],[0,0],[-4.689,-4.24],[-2.117,-0.39],[-5.923,0],[6.312,5.462],[0,0],[0,0],[-8.594,-2.228],[-5.355,-3.278],[2.757,-7.513],[23.763,-8.406],[2.172,-2.135],[1.662,-5.369],[0,0],[22.191,3.63]],"v":[[167.354,183.833],[168.43,187.064],[172.16,194.601],[177.006,208.637],[226.573,211.078],[248.609,226.19],[243.975,247.898],[231.342,254.321],[184.043,254.571],[176.756,254.571],[171.939,254.245],[162.66,246.561],[141.335,241.407],[127.608,230.946],[116.034,239.859],[123.746,255.436],[82.854,256.53],[36.556,255.875],[23.226,249.596],[17.772,228.591],[39.442,212.667],[90.282,210.663],[95.754,196.42],[99.05,188.912],[99.405,185.066]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.498039215803,0.470588237047,0.823529422283,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":169,"op":169,"st":0,"bm":0,"hidden":0},{"ddd":0,"ind":5,"ty":4,"nm":"Body","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2,40,0],"ix":2},"a":{"a":0,"k":[133.596,126.196,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.25,4.25]],"o":[[0,0],[3.25,-4.25]],"v":[[125.971,51.946],[134.846,50.071]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.666666686535,0.43935328722,0.358169943094,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 8","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.188,0.5],[0,0],[-1.5,0]],"o":[[-2.375,2],[0,0],[1.5,0]],"v":[[134.221,43.196],[126.346,44.633],[129.971,46.133]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078431375325,0.160784319043,0.215686276555,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.78823530674,0.524025976658,0.429665505886,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 7","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[8,-0.25]],"o":[[0,0],[-8,0.25]],"v":[[148.096,27.571],[137.221,23.071]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078431375325,0.160784319043,0.215686276555,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 6","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.875,-0.375]],"o":[[0,0],[7.875,0.375]],"v":[[112.346,28.196],[123.471,23.571]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.078431375325,0.160784319043,0.215686276555,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 5","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.125,0.125],[3.5,0.035],[0.031,-0.031],[-4.188,-0.063]],"o":[[0.125,-0.125],[-3.094,-0.031],[0.438,0.781],[3.812,0.057]],"v":[[148.096,31.008],[142.69,33.227],[137.221,31.258],[142.971,33.946]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078431375325,0.160784319043,0.215686276555,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 4","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.125,0.125],[3.5,0.035],[0.031,-0.031],[-4.188,-0.063]],"o":[[0.125,-0.125],[-3.094,-0.031],[0.438,0.781],[3.812,0.057]],"v":[[123.596,31.008],[118.19,33.227],[112.721,31.258],[118.471,33.946]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078431375325,0.160784319043,0.215686276555,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 3","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.938,8],[0,0],[0.438,-5.25],[0,0]],"o":[[-15.688,19.625],[0,0],[9.5,-7.375],[0,0]],"v":[[147.409,56.571],[114.409,56.571],[116.159,73.196],[147.096,71.071]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.827450990677,0.545314967632,0.444552093744,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 2","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.481,-12.015],[-1.24,-4.105],[-1.379,-2.422],[-1.58,-1.829],[-6.216,-7.195],[-2.386,-2.355],[-2.153,-1.077],[-2.693,0.538],[-3.768,-1.076],[-1.076,-0.538],[3.769,-1.077],[0,0],[-3.229,0.538],[0,5.384],[-1.986,0.993],[0,0],[-2.153,-0.539],[0,0],[0.538,-1.616],[0,0],[1.616,0],[0,0],[2.153,1.615],[3.768,3.769],[7.537,7.538],[2.154,5.384],[3.769,30.149],[2.692,-8.613],[-1.077,-3.768],[0,0],[-1.615,-5.384],[-2.154,-2.155],[-23.687,-8.614],[-2.692,-7.537],[5.384,-3.229],[8.614,-2.154],[0,0],[0,0],[2.171,-0.158],[0,0],[0.573,0],[5.921,0],[8.076,-1.615],[0,0],[0,0],[8.595,2.23],[0,0],[-2.758,7.514],[0,0],[0,0],[-1.662,5.37],[0,0],[0,0],[2.616,8.637],[0,0],[2.201,-5.364],[7.603,-7.472],[0,0],[2.168,-1.596],[0,0],[1.615,0.014],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.072,-0.546],[0,0],[0,0],[0,0],[3.759,1.11],[-1.081,0.53],[-3.778,1.043],[-2.687,-0.561],[0,0],[-2.244,2.175],[-2.214,2.517],[-6.279,7.14],[-1.214,2.089],[-0.83,2.661],[-0.904,4.192],[-3.599,9.582],[-0.921,16],[6.461,5.384],[-1.077,7.537],[-0.538,6.998],[-10.767,4.307],[-13.948,-10.438],[0.268,-0.433],[0,0],[3.348,-4.872],[0,0],[0.538,-7.537],[-10.767,-9.691],[-5.384,-6.998]],"o":[[4.522,11.403],[0.867,4.199],[0.806,2.669],[1.197,2.099],[6.215,7.196],[2.191,2.536],[2.224,2.195],[0,0],[2.691,-0.538],[3.769,1.078],[1.077,0.539],[-3.768,1.076],[0,0],[0,0],[0,0],[1.076,-0.538],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.615,0],[0,0],[-2.155,-1.616],[0,0],[-7.538,-7.537],[-2.153,-5.383],[0,0],[-2.691,8.614],[0,0],[0,0],[1.616,5.383],[0,0],[0,0],[2.691,7.538],[0,0],[-8.613,2.154],[0,0],[0,0],[0,0],[-0.813,0.056],[-2.153,0],[-5.923,0],[0,0],[0,0],[0,0],[-8.594,-2.228],[-5.355,-3.278],[2.757,-7.513],[23.763,-8.406],[2.172,-2.135],[1.662,-5.369],[0,0],[1.109,-3.759],[-2.616,-8.638],[-4.032,30.114],[-2.2,5.364],[-7.603,7.471],[-3.801,3.735],[-2.167,1.596],[0,0],[-1.615,-0.014],[0,0],[-0.524,-1.62],[0,0],[2.158,-0.519],[0,0],[1.976,1.011],[-0.047,5.383],[3.225,0.567],[0,0],[-3.76,-1.109],[1.082,-0.529],[3.778,-1.044],[2.687,0.563],[2.163,-1.058],[2.406,-2.334],[6.278,-7.14],[1.596,-1.815],[1.401,-2.41],[1.276,-4.094],[2.586,-11.992],[7.155,-19.047],[0,0],[-6.46,-5.383],[1.077,-7.537],[0.539,-6.999],[0,0],[10.397,7.781],[1.768,1.942],[0,0],[-1.152,2.128],[0,0],[-0.538,7.538],[10.768,9.691],[5.384,6.999]],"v":[[189.173,109.627],[195.595,145.77],[198.944,158.186],[201.947,165.971],[206.315,171.743],[224.963,193.328],[231.735,200.758],[238.418,205.906],[241.649,205.906],[252.954,206.982],[263.721,208.598],[260.491,212.905],[254.03,213.443],[259.952,219.365],[260.491,213.981],[262.645,210.213],[263.721,212.905],[266.413,211.29],[265.336,218.827],[266.413,220.981],[256.723,224.749],[254.03,225.287],[245.417,223.134],[241.649,221.519],[229.266,213.443],[200.733,193.523],[184.581,175.219],[172.737,126.766],[164.123,163.913],[167.354,183.833],[168.43,187.064],[171.66,194.601],[176.506,209.137],[226.573,211.828],[248.109,227.44],[242.725,247.898],[230.342,253.821],[184.043,253.821],[176.506,253.821],[171.939,254.245],[171.66,255.436],[163.585,253.282],[146.358,253.821],[124.284,254.359],[123.746,255.436],[82.854,255.53],[36.556,255.125],[24.226,249.096],[19.022,228.591],[40.692,213.167],[90.782,210.913],[95.754,196.42],[99.05,188.912],[100.155,185.691],[103.559,165.801],[95.27,128.579],[83.003,176.927],[66.693,195.09],[37.986,214.759],[25.533,222.726],[21.751,224.308],[13.119,226.386],[10.432,225.824],[0.774,221.971],[1.87,219.827],[0.859,212.28],[3.537,213.919],[4.637,211.236],[6.757,215.024],[7.249,220.412],[13.222,214.542],[6.767,213.947],[3.574,209.612],[14.355,208.092],[25.67,207.113],[28.9,207.142],[35.629,202.053],[42.465,194.682],[61.301,173.261],[65.718,167.527],[68.79,159.769],[72.247,147.382],[79.061,108.462],[116.209,72.929],[110.286,50.856],[102.211,35.782],[104.364,26.63],[114.593,0.25],[147.497,1],[156.781,27.745],[159.364,30.788],[158.201,44.934],[151.24,50.683],[146.896,61.085],[156.586,84.235],[184.581,98.771]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.960784316063,0.629434883595,0.51372551918,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":169,"op":169,"st":0,"bm":0,"hidden":0},{"ddd":0,"ind":6,"ty":4,"nm":"Hair_Back","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8,1.25],[0.25,-27.5],[1.25,-16.75],[-35.378,24.973],[7.5,12.25]],"o":[[-8,-1.25],[-0.25,27.5],[-1.157,15.507],[34,-24],[-10.256,-16.752]],"v":[[13.5,-69],[-30.5,-45.5],[-38.25,-1],[47.5,45.5],[29.5,-20.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.015732409433,0.071019984782,0.121568627656,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.5,23],[32.452,4.275],[2.156,-12.245],[-1.177,-7.706],[0,-34],[-48.303,31.422],[18.981,16.04]],"o":[[-3.784,-6.962],[-15.097,-1.989],[-10.844,3.505],[5.5,36],[0,15.55],[46.5,-30.25],[-17.75,-15]],"v":[[31.5,-77.25],[-5.452,-105.775],[-38.406,-84.005],[-49,-63.5],[-53.5,1],[47.5,45.5],[46.5,-43.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.745097994804,0.141176000237,0.129411995411,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.039215687662,0.176470592618,0.301960796118,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":170,"op":170,"st":-66,"bm":0,"hidden":-66},{"ddd":0,"ind":7,"ty":4,"nm":"Halo 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[270,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[75,75,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[300,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.023529411764705882,0.27450980392156865,0.8,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-78,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":6,"s":[60]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":174,"s":[60]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":258,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":342,"s":[60]},{"t":426,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":26,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-113,"op":170,"st":-65,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Halo","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[229.99999999999997,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[75,75,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[300,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.06666666666666667,0.15294117647058825,0.8392156862745098,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":-2,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":82,"s":[60]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":166,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":250,"s":[60]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":334,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":418,"s":[60]},{"t":502,"s":[0]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":26,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-37,"op":191,"st":11,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":20,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,450,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":0,"s":[243,8]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":84,"s":[186,6]},{"t":168,"s":[243,8]}],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.282352954149,0.282352954149,0.282352954149,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":169,"op":169,"st":0,"bm":0,"hidden":0},{"ddd":0,"ind":10,"ty":4,"nm":"Circles - 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":71,"ix":10},"p":{"a":0,"k":[376.898,209.72,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[-80,80,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-167,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-145.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-122.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":-87.196,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":-67.154,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":-39.445,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":-21.189,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":1,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":22.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":45.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":80.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":100.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":128.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":146.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":169,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-167,"op":191,"st":-167,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Circles - 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":71,"ix":10},"p":{"a":0,"k":[376.898,209.72,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[-80,80,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-122,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-100.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-77.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":-42.196,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":-22.154,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":5.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":23.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":46,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":67.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":90.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":125.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":145.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":173.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":191.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":214,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-122,"op":183,"st":-122,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Circles - 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":71,"ix":10},"p":{"a":0,"k":[376.898,209.72,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[-80,80,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-68,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-46.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-23.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":11.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":31.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":59.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":77.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":100,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":121.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":144.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":179.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":199.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":227.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":245.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":268,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-68,"op":179,"st":-68,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Circles - 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":129,"ix":10},"p":{"a":0,"k":[173.913,303.783,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[39,39,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-167,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-145.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-122.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":-87.196,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":-67.154,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":-39.445,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":-21.189,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":1,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":22.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":45.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":80.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":100.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":128.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":146.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":169,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-167,"op":191,"st":-167,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Circles - 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":129,"ix":10},"p":{"a":0,"k":[173.913,303.783,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[39,39,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-122,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-100.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-77.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":-42.196,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":-22.154,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":5.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":23.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":46,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":67.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":90.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":125.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":145.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":173.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":191.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":214,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-122,"op":183,"st":-122,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Circles - 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":129,"ix":10},"p":{"a":0,"k":[173.913,303.783,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[39,39,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-68,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-46.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-23.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":11.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":31.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":59.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":77.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":100,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":121.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":144.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":179.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":199.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":227.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":245.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":268,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-68,"op":179,"st":-68,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Circles - 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":66,"ix":10},"p":{"a":0,"k":[370.6,138.448,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[-28.000000000000004,28.000000000000004,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-167,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-145.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-122.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":-87.196,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":-67.154,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":-39.445,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":-21.189,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":1,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":22.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":45.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":80.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":100.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":128.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":146.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":169,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-167,"op":191,"st":-167,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Circles - 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":66,"ix":10},"p":{"a":0,"k":[370.6,138.448,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[-28.000000000000004,28.000000000000004,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-122,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-100.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-77.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":-42.196,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":-22.154,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":5.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":23.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":46,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":67.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":90.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":125.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":145.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":173.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":191.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":214,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-122,"op":183,"st":-122,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Circles - 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":66,"ix":10},"p":{"a":0,"k":[370.6,138.448,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[-28.000000000000004,28.000000000000004,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-68,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-46.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-23.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":11.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":31.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":59.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":77.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":100,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":121.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":144.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":179.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":199.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":227.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":245.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":268,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-68,"op":179,"st":-68,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Circles - 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[164.187,108.128,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-167,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-145.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-122.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":-87.196,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":-67.154,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":-39.445,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":-21.189,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":1,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":22.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":45.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":80.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":100.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":128.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":146.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":169,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-167,"op":191,"st":-167,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Circles - 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[164.187,108.128,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-122,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-100.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-77.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":-42.196,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":-22.154,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":5.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":23.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":46,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":67.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":90.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":125.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":145.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":173.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":191.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":214,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-122,"op":183,"st":-122,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Circles - 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[164.187,108.128,0],"ix":2},"a":{"a":0,"k":[194.187,88.128,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[20,20],"ix":2},"p":{"a":1,"k":[{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":-68,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":-46.421,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":-23.066,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":11.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":31.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":59.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":77.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.167,"y":0.167},"t":100,"s":[232,72],"to":[-49.639,1.418],"ti":[15,-43]},{"i":{"x":0.637,"y":0.638},"o":{"x":0.299,"y":0.299},"t":121.579,"s":[159,168],"to":[-15,43],"ti":[-10,-61]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.315,"y":0.315},"t":144.934,"s":[73,268],"to":[10,61],"ti":[-36,37]},{"i":{"x":0.669,"y":0.669},"o":{"x":0.333,"y":0.333},"t":179.804,"s":[253,316],"to":[36,-37],"ti":[-54.512,7.9]},{"i":{"x":0.685,"y":0.685},"o":{"x":0.345,"y":0.345},"t":199.846,"s":[364,332],"to":[69,-10],"ti":[38,35]},{"i":{"x":0.693,"y":0.693},"o":{"x":0.354,"y":0.354},"t":227.555,"s":[420,208],"to":[-38,-35],"ti":[46,48]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.445,"y":0.445},"t":245.811,"s":[327,152],"to":[-38.548,-40.225],"ti":[70,-2]},{"t":268,"s":[232,72]}],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.5607843137254902,0.7176470588235294,0.3686274509803922,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233,73],"ix":2},"a":{"a":0,"k":[233,73],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-68,"op":179,"st":-68,"bm":0}],"markers":[{"tm":168,"cm":"1","dr":0}]}
\ No newline at end of file
diff --git a/app/src/main/res/raw/lottie_adaptive_playback.json b/app/src/main/res/raw/lottie_adaptive_playback.json
new file mode 100644
index 000000000..83165f0f6
--- /dev/null
+++ b/app/src/main/res/raw/lottie_adaptive_playback.json
@@ -0,0 +1 @@
+{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.21","a":"","k":"","d":"","tc":"#FFFFFF"},"fr":60,"ip":0,"op":2040,"w":1280,"h":720,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Laag 1 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1006.261,210.314,0],"ix":2},"a":{"a":0,"k":[80.284,80.284,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[67.617,67.617],[-67.617,-67.617]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Background","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[85.45,75.117],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[67.617,67.617],[-67.617,-67.617]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.258823543787,0.521568655968,0.95294123888,1],"ix":3},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":15,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Background","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[75.116,85.45],"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":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.203],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":270,"s":[100]},{"i":{"x":[0.822],"y":[-1.355]},"o":{"x":[0.166],"y":[0]},"t":290,"s":[0]},{"i":{"x":[0.678],"y":[1]},"o":{"x":[0.345],"y":[0]},"t":449,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":450,"s":[100]},{"i":{"x":[0.203],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":555,"s":[100]},{"t":575,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.203],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[100]},{"i":{"x":[0.667],"y":[0.462]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":449,"s":[0]},{"i":{"x":[0.203],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":450,"s":[100]},{"t":470,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":680,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Volume","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1001.093,215.521,0],"ix":2},"a":{"a":0,"k":[73,71.141,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[32.414,7.356],[0,0],[0,-25.624],[23.36,-6.951],[0,0],[0,34.597]],"o":[[0,0],[23.36,6.952],[0,25.624],[0,0],[32.414,-7.356],[0,-34.597]],"v":[[-28.291,-70.891],[-28.291,-54.239],[12.124,0],[-28.291,54.239],[-28.291,70.891],[28.291,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258823543787,0.521568655968,0.95294123888,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[117.458,71.141],"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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,14.308],[11.963,5.982],[0,0]],"o":[[0,-14.308],[0,0],[11.963,-5.901]],"v":[[10.104,0.04],[-10.104,-32.536],[-10.104,32.536]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258823543787,0.521568655968,0.95294123888,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[99.271,71.101],"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":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-36.375,-24.25],[-36.375,24.25],[-4.042,24.25],[36.375,64.667],[36.375,-64.667],[-4.042,-24.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258823543787,0.521568655968,0.95294123888,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.625,71.141],"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":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":680,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Timer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.944,504.323,0],"ix":2},"a":{"a":0,"k":[118.156,118.155,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[2.333,0],[0.098,-2.331],[0,0],[-4.569,0],[0,4.568]],"o":[[0,0],[-0.098,-2.331],[-2.332,0],[0,0],[0,4.568],[4.569,0],[0,0]],"v":[[8.272,44.66],[4.348,-48.763],[0,-52.934],[-4.348,-48.763],[-8.272,44.662],[0,52.934],[8.272,44.662]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":6,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Background","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"op","nm":"Offset Paths 1","a":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = $bm_div(content('Handle').content('Background').strokeWidth, 2);"},"lj":1,"ml":{"a":0,"k":4,"ix":3},"ix":3,"mn":"ADBE Vector Filter - Offset","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[117.906,118.119],"ix":2},"a":{"a":0,"k":[-0.25,44.625],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[136]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0]},{"i":{"x":[0.228],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":360,"s":[0]},{"t":375,"s":[136]}],"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":"Handle","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.301,0],[0,0],[0,3.3],[0,0],[-3.3,0],[0,-3.3],[0,0]],"o":[[0,0],[-3.3,0],[0,0],[0,-3.3],[3.301,0],[0,0],[0,3.3]],"v":[[0,14],[0,14],[-6,8],[-6,-8],[0,-14],[6,-8],[6,8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258823543787,0.521568655968,0.95294123888,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":360,"s":[0]},{"t":364,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529481888,0.886274576187,0.988235354424,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":256,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":359,"s":[0]},{"t":360,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[118.156,35],"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":"1","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.333,2.334],[0,0],[-2.334,2.334],[0,0],[-2.333,-2.333],[2.333,-2.333],[0,0]],"o":[[0,0],[-2.334,-2.333],[0,0],[2.334,-2.333],[2.333,2.334],[0,0],[-2.334,2.334]],"v":[[-9.899,9.899],[-9.899,9.899],[-9.899,1.414],[1.414,-9.9],[9.9,-9.9],[9.9,-1.414],[-1.414,9.899]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258823543787,0.521568655968,0.95294123888,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":364,"s":[0]},{"t":366,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529481888,0.886274576187,0.988235354424,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":195,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":196,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":363,"s":[0]},{"t":364,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[176.799,59.199],"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":"2","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.3],[0,0],[-3.3,0],[0,0],[0,-3.3],[3.3,0],[0,0]],"o":[[0,0],[0,-3.3],[0,0],[3.3,0],[0,3.3],[0,0],[-3.3,0]],"v":[[-14,0],[-14,0],[-8,-6],[8,-6],[14,0],[8,6],[-8,6]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258823543787,0.521568655968,0.95294123888,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":366,"s":[0]},{"t":371,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529481888,0.886274576187,0.988235354424,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":135,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":136,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":366,"s":[0]},{"t":367,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.311,118.155],"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":"3","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.333,2.333],[0,0],[-2.333,-2.334],[0,0],[2.334,-2.334],[2.334,2.333],[0,0]],"o":[[0,0],[2.334,-2.334],[0,0],[2.334,2.333],[-2.333,2.333],[0,0],[-2.333,-2.333]],"v":[[-9.9,-9.899],[-9.9,-9.899],[-1.415,-9.899],[9.899,1.414],[9.899,9.9],[1.413,9.9],[-9.9,-1.415]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[177.112,176.798],"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":"4","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.3,0],[0,0],[0,-3.3],[0,0],[3.301,0],[0,3.3],[0,0]],"o":[[0,0],[3.301,0],[0,0],[0,3.3],[-3.3,0],[0,0],[0,-3.3]],"v":[[0,-14],[0,-14],[6,-8],[6,8],[0,14],[-6,8],[-6,-8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[118.156,201.31],"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":"5","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.334,-2.334],[0,0],[2.333,-2.334],[0,0],[2.333,2.333],[-2.334,2.334],[0,0]],"o":[[0,0],[2.333,2.333],[0,0],[-2.334,2.333],[-2.334,-2.333],[0,0],[2.333,-2.334]],"v":[[9.9,-9.899],[9.9,-9.899],[9.9,-1.414],[-1.413,9.9],[-9.899,9.9],[-9.899,1.414],[1.415,-9.899]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.512,177.111],"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":"6","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.3],[0,0],[3.3,0],[0,0],[0,3.3],[-3.3,0],[0,0]],"o":[[0,0],[0,3.3],[0,0],[-3.3,0],[0,-3.3],[0,0],[3.3,0]],"v":[[14,0],[14,0],[8.001,6],[-8,6],[-14,0],[-8,-6],[8.001,-6]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[35,118.155],"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":"7","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.333,-2.334],[0,0],[2.333,2.333],[0,0],[-2.333,2.334],[-2.333,-2.333],[0,0]],"o":[[0,0],[-2.334,2.333],[0,0],[-2.333,-2.333],[2.334,-2.333],[0,0],[2.333,2.333]],"v":[[9.9,9.9],[9.9,9.9],[1.415,9.9],[-9.9,-1.414],[-9.9,-9.9],[-1.414,-9.9],[9.9,1.415]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.2,59.512],"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":"8","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-45.925],[45.926,0],[0,45.926],[-45.925,0]],"o":[[0,45.926],[-45.925,0],[0,-45.925],[45.926,0]],"v":[[83.156,0],[0,83.155],[-83.156,0],[0,-83.155]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[37.5]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":255,"s":[0]},{"i":{"x":[0.228],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":360,"s":[0]},{"t":375,"s":[37.5]}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.823999980852,0.885999971278,0.987999949736,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[118.156,118.155],"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":"Outline","np":3,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":465,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Timer","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1000.944,504.323,0],"ix":2},"a":{"a":0,"k":[118.156,118.155,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[2.333,0],[0.098,-2.331],[0,0],[-4.569,0],[0,4.568]],"o":[[0,0],[-0.098,-2.331],[-2.332,0],[0,0],[0,4.568],[4.569,0],[0,0]],"v":[[8.272,44.66],[4.348,-48.763],[0,-52.934],[-4.348,-48.763],[-8.272,44.662],[0,52.934],[8.272,44.662]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":6,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Background","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"op","nm":"Offset Paths 1","a":{"a":0,"k":10,"ix":1,"x":"var $bm_rt;\n$bm_rt = $bm_div(content('Handle').content('Background').strokeWidth, 2);"},"lj":1,"ml":{"a":0,"k":4,"ix":3},"ix":3,"mn":"ADBE Vector Filter - Offset","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[117.906,118.119],"ix":2},"a":{"a":0,"k":[-0.25,44.625],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":465,"s":[136]},{"i":{"x":[0.202],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":555,"s":[68]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":570,"s":[136]},{"t":660,"s":[136]}],"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":"Handle","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.301,0],[0,0],[0,3.3],[0,0],[-3.3,0],[0,-3.3],[0,0]],"o":[[0,0],[-3.3,0],[0,0],[0,-3.3],[3.301,0],[0,0],[0,3.3]],"v":[[0,14],[0,14],[-6,8],[-6,-8],[0,-14],[6,-8],[6,8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[118.156,35],"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":"1","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.333,2.334],[0,0],[-2.334,2.334],[0,0],[-2.333,-2.333],[2.333,-2.333],[0,0]],"o":[[0,0],[-2.334,-2.333],[0,0],[2.334,-2.333],[2.333,2.334],[0,0],[-2.334,2.334]],"v":[[-9.899,9.899],[-9.899,9.899],[-9.899,1.414],[1.414,-9.9],[9.9,-9.9],[9.9,-1.414],[-1.414,9.899]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":525,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[50]},{"t":559,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529481888,0.886274576187,0.988235354424,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[176.799,59.199],"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":"2","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.3],[0,0],[-3.3,0],[0,0],[0,-3.3],[3.3,0],[0,0]],"o":[[0,0],[0,-3.3],[0,0],[3.3,0],[0,3.3],[0,0],[-3.3,0]],"v":[[-14,0],[-14,0],[-8,-6],[8,-6],[14,0],[8,6],[-8,6]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":465,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":520,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":560,"s":[0]},{"t":570,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529481888,0.886274576187,0.988235354424,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":525,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":526,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":559,"s":[0]},{"t":560,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.311,118.155],"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":"3","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.333,2.333],[0,0],[-2.333,-2.334],[0,0],[2.334,-2.334],[2.334,2.333],[0,0]],"o":[[0,0],[2.334,-2.334],[0,0],[2.334,2.333],[-2.333,2.333],[0,0],[-2.333,-2.333]],"v":[[-9.9,-9.899],[-9.9,-9.899],[-1.415,-9.899],[9.899,1.414],[9.899,9.9],[1.413,9.9],[-9.9,-1.415]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[177.112,176.798],"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":"4","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.3,0],[0,0],[0,-3.3],[0,0],[3.301,0],[0,3.3],[0,0]],"o":[[0,0],[3.301,0],[0,0],[0,3.3],[-3.3,0],[0,0],[0,-3.3]],"v":[[0,-14],[0,-14],[6,-8],[6,8],[0,14],[-6,8],[-6,-8]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[118.156,201.31],"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":"5","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.334,-2.334],[0,0],[2.333,-2.334],[0,0],[2.333,2.333],[-2.334,2.334],[0,0]],"o":[[0,0],[2.333,2.333],[0,0],[-2.334,2.333],[-2.334,-2.333],[0,0],[2.333,-2.334]],"v":[[9.9,-9.899],[9.9,-9.899],[9.9,-1.414],[-1.413,9.9],[-9.899,9.9],[-9.899,1.414],[1.415,-9.899]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.512,177.111],"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":"6","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.3],[0,0],[3.3,0],[0,0],[0,3.3],[-3.3,0],[0,0]],"o":[[0,0],[0,3.3],[0,0],[-3.3,0],[0,-3.3],[0,0],[3.3,0]],"v":[[14,0],[14,0],[8.001,6],[-8,6],[-14,0],[-8,-6],[8.001,-6]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[35,118.155],"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":"7","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.333,-2.334],[0,0],[2.333,2.333],[0,0],[-2.333,2.334],[-2.333,-2.333],[0,0]],"o":[[0,0],[-2.334,2.333],[0,0],[-2.333,-2.333],[2.334,-2.333],[0,0],[2.333,2.333]],"v":[[9.9,9.9],[9.9,9.9],[1.415,9.9],[-9.9,-1.414],[-9.9,-9.9],[-1.414,-9.9],[9.9,1.415]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392156863,0.607843137255,0.623529411765,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[59.2,59.512],"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":"8","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-45.925],[45.926,0],[0,45.926],[-45.925,0]],"o":[[0,45.926],[-45.925,0],[0,-45.925],[45.926,0]],"v":[[83.156,0],[0,83.155],[-83.156,0],[0,-83.155]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":465,"s":[37.5]},{"i":{"x":[0.202],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":555,"s":[17.75]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":570,"s":[37.5]},{"t":660,"s":[37.5]}],"ix":2},"o":{"a":0,"k":-90,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.823999980852,0.885999971278,0.987999949736,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":14,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[118.156,118.155],"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":"Outline","np":3,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":465,"op":680,"st":390,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Content Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[465.623,472.104,0],"ix":2},"a":{"a":0,"k":[146.25,227.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.252,329.708],[292.252,329.646]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[23]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[49]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":360,"s":[49]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":465,"s":[85.75]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[85.75]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":595,"s":[100]},{"i":{"x":[0.232],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":615,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":629,"s":[0]},{"t":680,"s":[23]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.258823543787,0.521568655968,0.95294123888,1],"ix":3},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Screen","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 2","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0.252,329.708],[292.252,329.646]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.823529481888,0.886274576187,0.988235354424,1],"ix":3},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"st","c":{"a":0,"k":[0.8156863451,0.8156863451,0.8156863451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.346,0],[0,-3.345],[-3.346,0],[0,3.346]],"o":[[-3.346,0],[0,3.346],[3.346,0],[0,-3.345]],"v":[[0,-6.084],[-6.083,-0.001],[0,6.084],[6.083,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[15.147,0],[0,15.148],[-15.147,0],[0,-15.147]],"o":[[-15.147,0],[0,-15.147],[15.147,0],[0,15.148]],"v":[[0,27.376],[-27.375,-0.001],[0,-27.376],[27.375,-0.001]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[33.58,0],[0,-33.58],[-33.58,0],[0,33.58]],"o":[[-33.58,0],[0,33.58],[33.58,0],[0,-33.58]],"v":[[0,-60.834],[-60.833,-0.001],[0,60.834],[60.833,-0.001]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Screen","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[146.25,146.25],"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":"Group 1","np":7,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[146,146],[-146,146],[-146,-146],[146,-146]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.824000000954,0.885999977589,0.987999975681,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"AccentLight2","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.814236879349,0.814236879349,0.814236879349,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"HighlightFaint","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[146.25,146.25],"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":"Group 2","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-10.667,-16],[-16,-16],[-16,16],[-10.667,16]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[-10.667,16]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[16,-16],[-6.667,0],[16,16]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.25,415.436],"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":"Group 5","np":6,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.667,16],[16,16],[16,-16],[10.667,-16]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0]],"o":[[0,0]],"v":[[10.667,-16]],"c":false},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-16,16],[6.667,0],[-16,-16]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[260.25,415.436],"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":"Group 6","np":6,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8,18],[-8,-18],[16,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[22.08,0],[0,-22.08],[-22.08,0],[0,22.08]],"o":[[-22.08,0],[0,22.08],[22.08,0],[0,-22.08]],"v":[[0,-40],[-40,0],[0,40],[40,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Screen","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[146.25,415.25],"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":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":360,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":365,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":460,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":465,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[100]},{"t":560,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Play","np":6,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-8,18],[-8,-18],[16,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Screen","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[146.25,415.25],"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":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":75,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":360,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":365,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":460,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":465,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[100]},{"t":560,"s":[0]}],"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Play 2","np":3,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[12,16],[4,16],[4,-16],[12,-16]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4,16],[-12,16],[-12,-16],[-4,-16]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[22.08,0],[0,-22.08],[-22.08,0],[0,22.08]],"o":[[-22.08,0],[0,22.08],[22.08,0],[0,-22.08]],"v":[[0,-40],[-40,0],[0,40],[40,0]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.522000002394,0.952999997606,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":270,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":290,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":450,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":470,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":555,"s":[0]},{"t":575,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Accent","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[0.580392181873,0.607843160629,0.623529434204,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Highlight","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Screen","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[146.25,415.25],"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":"Pause","np":7,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":680,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Phone Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[469.128,612.603,0],"ix":2},"a":{"a":0,"k":[254.064,470.016,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,2.323],[0,0],[2.323,0],[0,0]],"o":[[0,0],[2.323,0],[0,0],[0,-2.323],[0,0],[0,0]],"v":[[-3.505,52.586],[-0.701,52.586],[3.505,48.379],[3.505,-48.379],[-0.701,-52.586],[-3.505,-52.586]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.855000035903,0.855000035903,0.855000035903,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Frame","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[504.372,407.614],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,2.323],[0,0],[2.323,0],[0,0]],"o":[[0,0],[2.323,0],[0,0],[0,-2.324],[0,0],[0,0]],"v":[[-3.505,28.045],[-0.701,28.045],[3.505,23.839],[3.505,-23.839],[-0.701,-28.046],[-3.505,-28.046]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.855000035903,0.855000035903,0.855000035903,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Frame","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[504.372,258.271],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[26.676,0],[0,0],[0,-26.676],[0,0],[-26.676,0],[0,0],[0,26.677],[0,0]],"o":[[0,0],[-26.676,0],[0,0],[0,26.677],[0,0],[26.676,0],[0,0],[0,-26.676]],"v":[[201.93,-288.582],[-201.929,-288.582],[-250.308,-240.202],[-250.308,602.571],[-201.929,650.95],[201.93,650.95],[250.308,602.571],[250.308,-240.202]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-24.396],[0,0],[24.396,0],[0,0],[0,24.396],[0,0],[-24.395,0]],"o":[[24.396,0],[0,0],[0,24.396],[0,0],[-24.395,0],[0,0],[0,-24.396],[0,0]],"v":[[201.93,-284.374],[246.102,-240.202],[246.102,602.571],[201.93,646.744],[-201.929,646.744],[-246.101,602.571],[-246.101,-240.202],[-201.929,-284.374]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.855000035903,0.855000035903,0.855000035903,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Frame","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[250.558,288.831],"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":"Group 3","np":6,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-18.944],[0,0],[-18.944,0],[0,0],[0,18.946],[0,0],[18.944,0]],"o":[[-18.944,0],[0,0],[0,18.946],[0,0],[18.944,0],[0,0],[0,-18.944],[0,0]],"v":[[-201.228,-273.507],[-235.584,-239.151],[-235.584,599.416],[-201.228,633.773],[201.229,633.773],[235.584,599.416],[235.584,-239.151],[201.229,-273.507]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,25.516],[0,0],[-25.517,0],[0,0],[0,-25.516],[0,0],[25.516,0]],"o":[[-25.517,0],[0,0],[0,-25.516],[0,0],[25.516,0],[0,0],[0,25.516],[0,0]],"v":[[-201.929,647.795],[-248.205,601.52],[-248.205,-241.255],[-201.929,-287.53],[201.93,-287.53],[248.205,-241.255],[248.205,601.52],[201.93,647.795]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929000016755,0.929000016755,0.929000016755,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Bezel","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[251.018,290.411],"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":"Group 4","np":6,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,18.945],[0,0],[18.944,0],[0,0],[0,-18.944],[0,0],[-18.944,0],[0,0]],"o":[[0,0],[0,-18.944],[0,0],[-18.944,0],[0,0],[0,18.945],[0,0],[18.944,0]],"v":[[235.584,592.405],[235.584,-246.162],[201.229,-280.518],[-201.228,-280.518],[-235.584,-246.162],[-235.584,592.405],[-201.228,626.761],[201.229,626.761]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Screen","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[250.558,296.895],"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":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":680,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Adaptive Playback","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[640,360,0],"ix":2},"a":{"a":0,"k":[640,360,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1280,"h":720,"ip":0,"op":680,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Adaptive Playback","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[640,360,0],"ix":2},"a":{"a":0,"k":[640,360,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1280,"h":720,"ip":680,"op":1360,"st":680,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"Adaptive Playback","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[640,360,0],"ix":2},"a":{"a":0,"k":[640,360,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":1280,"h":720,"ip":1360,"op":2040,"st":1360,"bm":0}],"markers":[]}
diff --git a/app/src/main/res/raw/lottie_lockscreen_clock_21.json b/app/src/main/res/raw/lottie_lockscreen_clock_21.json
new file mode 100644
index 000000000..804af07c1
--- /dev/null
+++ b/app/src/main/res/raw/lottie_lockscreen_clock_21.json
@@ -0,0 +1,12449 @@
+{
+ "v": "5.7.7",
+ "fr": 30,
+ "ip": 0,
+ "op": 120,
+ "w": 500,
+ "h": 500,
+ "nm": "Bot Say Hello",
+ "ddd": 0,
+ "assets": [],
+ "layers": [
+ {
+ "ddd": 0,
+ "ind": 1,
+ "ty": 4,
+ "nm": "Hello",
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 181.007,
+ 234.65,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 162.224,
+ 115.604,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0,
+ 0,
+ 0
+ ],
+ "y": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333,
+ 0.333,
+ 0.333
+ ],
+ "y": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ "t": 10,
+ "s": [
+ 0,
+ 0,
+ 100
+ ]
+ },
+ {
+ "t": 20,
+ "s": [
+ 100,
+ 100,
+ 100
+ ]
+ }
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -2.447,
+ -6.873
+ ],
+ [
+ 0.346,
+ -0.217
+ ],
+ [
+ 1.529,
+ 3.354
+ ],
+ [
+ -0.571,
+ 0.019
+ ]
+ ],
+ "o": [
+ [
+ 1.431,
+ 4.018
+ ],
+ [
+ -0.389,
+ 0.245
+ ],
+ [
+ -2.675,
+ -5.871
+ ],
+ [
+ 0.48,
+ -0.017
+ ]
+ ],
+ "v": [
+ [
+ 0.832,
+ 2.261
+ ],
+ [
+ 3.415,
+ 8.844
+ ],
+ [
+ -1.085,
+ 3.178
+ ],
+ [
+ -1.751,
+ -9.072
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 144.052,
+ 99.027
+ ],
+ "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": "Group 1",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -0.173,
+ -3.067
+ ],
+ [
+ 0.207,
+ -0.012
+ ],
+ [
+ 0.173,
+ 3.067
+ ],
+ [
+ -0.207,
+ 0.012
+ ]
+ ],
+ "o": [
+ [
+ 0.173,
+ 3.067
+ ],
+ [
+ -0.207,
+ 0.011
+ ],
+ [
+ -0.173,
+ -3.067
+ ],
+ [
+ 0.207,
+ -0.011
+ ]
+ ],
+ "v": [
+ [
+ 0.374,
+ -0.021
+ ],
+ [
+ 0.314,
+ 5.554
+ ],
+ [
+ -0.374,
+ 0.021
+ ],
+ [
+ -0.314,
+ -5.554
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 32.467,
+ 40.642
+ ],
+ "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": "Group 2",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.598
+ ],
+ [
+ 1.317,
+ 0
+ ],
+ [
+ 0,
+ 0.598
+ ],
+ [
+ -1.317,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.598
+ ],
+ [
+ -1.317,
+ 0
+ ],
+ [
+ 0,
+ -0.598
+ ],
+ [
+ 1.317,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 2.385,
+ 0
+ ],
+ [
+ 0.001,
+ 1.083
+ ],
+ [
+ -2.385,
+ 0
+ ],
+ [
+ 0.001,
+ -1.083
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 76.612,
+ 5.314
+ ],
+ "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": "Group 3",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 3,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -1.104
+ ],
+ [
+ 4.863,
+ 0
+ ],
+ [
+ 0,
+ 1.104
+ ],
+ [
+ -4.862,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 1.104
+ ],
+ [
+ -4.862,
+ 0
+ ],
+ [
+ 0,
+ -1.104
+ ],
+ [
+ 4.863,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 8.803,
+ 0
+ ],
+ [
+ -0.001,
+ 2
+ ],
+ [
+ -8.803,
+ 0
+ ],
+ [
+ -0.001,
+ -2
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 59.422,
+ 5.314
+ ],
+ "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": "Group 4",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 4,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.693
+ ],
+ [
+ 0.692,
+ 0
+ ],
+ [
+ 0,
+ 0.693
+ ],
+ [
+ -0.694,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.693
+ ],
+ [
+ -0.694,
+ 0
+ ],
+ [
+ 0,
+ -0.693
+ ],
+ [
+ 0.692,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 1.255,
+ 0
+ ],
+ [
+ 0,
+ 1.255
+ ],
+ [
+ -1.255,
+ 0
+ ],
+ [
+ 0,
+ -1.255
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 157.645,
+ 41.419
+ ],
+ "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": "Group 5",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 5,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 1.141,
+ -0.847
+ ],
+ [
+ 18.329,
+ 9.737
+ ],
+ [
+ -0.219,
+ 0.995
+ ],
+ [
+ -10.898,
+ -5.452
+ ]
+ ],
+ "o": [
+ [
+ -1.054,
+ 0.783
+ ],
+ [
+ -10.312,
+ -5.479
+ ],
+ [
+ 0.258,
+ -1.168
+ ],
+ [
+ 16.368,
+ 8.189
+ ]
+ ],
+ "v": [
+ [
+ 22.153,
+ 15.829
+ ],
+ [
+ -4.57,
+ -7.334
+ ],
+ [
+ -23.075,
+ -15.014
+ ],
+ [
+ 0.102,
+ -11.16
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 134.115,
+ 20.115
+ ],
+ "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": "Group 6",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 6,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.919,
+ -1.25
+ ],
+ [
+ 0.44,
+ 2.379
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.009,
+ 0.625
+ ],
+ [
+ 0.111,
+ 0.101
+ ],
+ [
+ -1.689,
+ 0.22
+ ],
+ [
+ -0.439,
+ -0.159
+ ],
+ [
+ -0.046,
+ -0.138
+ ]
+ ],
+ "o": [
+ [
+ -0.688,
+ 0.946
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.009,
+ -0.156
+ ],
+ [
+ -0.002,
+ -0.138
+ ],
+ [
+ -0.902,
+ -0.816
+ ],
+ [
+ 1.493,
+ -0.195
+ ],
+ [
+ 0.192,
+ 0.069
+ ],
+ [
+ 0.863,
+ 4.822
+ ]
+ ],
+ "v": [
+ [
+ 2.718,
+ 13.806
+ ],
+ [
+ 1.497,
+ -11.967
+ ],
+ [
+ 1.497,
+ -12.124
+ ],
+ [
+ 1.469,
+ -13.216
+ ],
+ [
+ 1.229,
+ -13.932
+ ],
+ [
+ -1.948,
+ -14.557
+ ],
+ [
+ 1.707,
+ -14.448
+ ],
+ [
+ 1.956,
+ -13.868
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 47.186,
+ 48.396
+ ],
+ "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": "Group 7",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 7,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -1.382,
+ -1.533
+ ],
+ [
+ -0.043,
+ 0.102
+ ],
+ [
+ 1.801,
+ 2.748
+ ],
+ [
+ 0.558,
+ 0
+ ],
+ [
+ 0.02,
+ -0.015
+ ]
+ ],
+ "o": [
+ [
+ 2.159,
+ 2.394
+ ],
+ [
+ 0.046,
+ -0.107
+ ],
+ [
+ -0.847,
+ -1.293
+ ],
+ [
+ -0.013,
+ 0
+ ],
+ [
+ -0.286,
+ 0.208
+ ]
+ ],
+ "v": [
+ [
+ -1.428,
+ 0.666
+ ],
+ [
+ 3.858,
+ 3.419
+ ],
+ [
+ -1.319,
+ 0.106
+ ],
+ [
+ -3.563,
+ -3.521
+ ],
+ [
+ -3.618,
+ -3.506
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 59.239,
+ 62.023
+ ],
+ "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": "Group 8",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 8,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 1.858,
+ -0.458
+ ],
+ [
+ -1.455,
+ -1.258
+ ]
+ ],
+ "o": [
+ [
+ -0.462,
+ -2.608
+ ],
+ [
+ -1.859,
+ 0.458
+ ],
+ [
+ 1.456,
+ 1.259
+ ]
+ ],
+ "v": [
+ [
+ 3.578,
+ 2.768
+ ],
+ [
+ -1.719,
+ -2.31
+ ],
+ [
+ 1.938,
+ 0.816
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 70.547,
+ 45.066
+ ],
+ "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": "Group 9",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 9,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -0.424,
+ 0.004
+ ],
+ [
+ 0.307,
+ -3.49
+ ]
+ ],
+ "o": [
+ [
+ 1.055,
+ -0.01
+ ],
+ [
+ -0.306,
+ 3.489
+ ]
+ ],
+ "v": [
+ [
+ -0.516,
+ -13.123
+ ],
+ [
+ 0.633,
+ 9.644
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 98.502,
+ 44.443
+ ],
+ "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": "Group 10",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 10,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -0.819,
+ -2.971
+ ],
+ [
+ 1.986,
+ 2.216
+ ],
+ [
+ 1.039,
+ -0.121
+ ],
+ [
+ 0.044,
+ -0.28
+ ],
+ [
+ -2.052,
+ -1.539
+ ]
+ ],
+ "o": [
+ [
+ 0.006,
+ -0.959
+ ],
+ [
+ -1.707,
+ -1.905
+ ],
+ [
+ -0.198,
+ 0.023
+ ],
+ [
+ -0.091,
+ 0.582
+ ],
+ [
+ 1.148,
+ 0.86
+ ]
+ ],
+ "v": [
+ [
+ 4.061,
+ 4.218
+ ],
+ [
+ 1.967,
+ -1.691
+ ],
+ [
+ -3.062,
+ -4.097
+ ],
+ [
+ -3.976,
+ -3.678
+ ],
+ [
+ 0.731,
+ -1.151
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 120.646,
+ 44.912
+ ],
+ "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": "Group 11",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 11,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.571
+ ],
+ [
+ 0.571,
+ 0
+ ],
+ [
+ 0,
+ 0.571
+ ],
+ [
+ -0.57,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.571
+ ],
+ [
+ -0.57,
+ 0
+ ],
+ [
+ 0,
+ -0.571
+ ],
+ [
+ 0.571,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 1.034,
+ 0
+ ],
+ [
+ -0.001,
+ 1.033
+ ],
+ [
+ -1.033,
+ 0
+ ],
+ [
+ -0.001,
+ -1.033
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 137.205,
+ 56.663
+ ],
+ "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": "Group 12",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 12,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.438,
+ -8.742
+ ],
+ [
+ -0.944,
+ 0.469
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.944,
+ -0.469
+ ]
+ ],
+ "v": [
+ [
+ 0.73,
+ 9.068
+ ],
+ [
+ -0.225,
+ -8.6
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 135.626,
+ 38.909
+ ],
+ "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": "Group 13",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 13,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 2.296,
+ -0.105
+ ],
+ [
+ 0.007,
+ 0.161
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.939,
+ 0.135
+ ],
+ [
+ -0.01,
+ -0.225
+ ]
+ ],
+ "o": [
+ [
+ 0.009,
+ 0.193
+ ],
+ [
+ -2.297,
+ 0.106
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.012,
+ -0.257
+ ],
+ [
+ 2.938,
+ -0.135
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 3.762,
+ 6.752
+ ],
+ [
+ 0.331,
+ 7.2
+ ],
+ [
+ -3.124,
+ 7.118
+ ],
+ [
+ -5.179,
+ -16.588
+ ],
+ [
+ -0.789,
+ -17.175
+ ],
+ [
+ 3.634,
+ -17.041
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ind": 1,
+ "ty": "sh",
+ "ix": 2,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.971,
+ 0.136
+ ],
+ [
+ -0.009,
+ -0.193
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 2.97,
+ -0.136
+ ],
+ [
+ 0.009,
+ 0.193
+ ]
+ ],
+ "o": [
+ [
+ -0.011,
+ -0.225
+ ],
+ [
+ 2.97,
+ -0.137
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.015,
+ 0.321
+ ],
+ [
+ -2.97,
+ 0.137
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ -4.053,
+ 10.008
+ ],
+ [
+ 0.387,
+ 9.467
+ ],
+ [
+ 4.856,
+ 9.55
+ ],
+ [
+ 5.175,
+ 16.488
+ ],
+ [
+ 0.741,
+ 17.174
+ ],
+ [
+ -3.728,
+ 17.089
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 2",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "mm",
+ "mm": 1,
+ "nm": "Merge Paths 1",
+ "mn": "ADBE Vector Filter - Merge",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -101,
+ 15.5
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 21.5,
+ -17
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 133.819,
+ 45.825
+ ],
+ "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": "Group 14",
+ "np": 4,
+ "cix": 2,
+ "bm": 0,
+ "ix": 14,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 1.814,
+ -0.083
+ ],
+ [
+ -0.136,
+ -2.954
+ ],
+ [
+ -1.815,
+ 0.083
+ ],
+ [
+ 0.137,
+ 2.955
+ ]
+ ],
+ "o": [
+ [
+ -1.814,
+ 0.083
+ ],
+ [
+ 0.136,
+ 2.955
+ ],
+ [
+ 1.814,
+ -0.083
+ ],
+ [
+ -0.135,
+ -2.954
+ ]
+ ],
+ "v": [
+ [
+ -0.158,
+ -4.482
+ ],
+ [
+ -2.676,
+ 0.075
+ ],
+ [
+ 0.25,
+ 4.382
+ ],
+ [
+ 2.767,
+ -0.175
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ind": 1,
+ "ty": "sh",
+ "ix": 2,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 2.109,
+ 2.123
+ ],
+ [
+ 0.18,
+ 3.918
+ ],
+ [
+ -1.905,
+ 2.308
+ ],
+ [
+ -3.404,
+ 0.156
+ ],
+ [
+ -2.093,
+ -2.124
+ ],
+ [
+ -0.18,
+ -3.918
+ ],
+ [
+ 1.889,
+ -2.308
+ ],
+ [
+ 3.403,
+ -0.156
+ ]
+ ],
+ "o": [
+ [
+ -2.109,
+ -2.124
+ ],
+ [
+ -0.18,
+ -3.918
+ ],
+ [
+ 1.905,
+ -2.308
+ ],
+ [
+ 3.404,
+ -0.157
+ ],
+ [
+ 2.093,
+ 2.125
+ ],
+ [
+ 0.18,
+ 3.919
+ ],
+ [
+ -1.889,
+ 2.307
+ ],
+ [
+ -3.404,
+ 0.157
+ ]
+ ],
+ "v": [
+ [
+ -7.67,
+ 9.574
+ ],
+ [
+ -11.104,
+ 0.511
+ ],
+ [
+ -8.516,
+ -8.829
+ ],
+ [
+ -0.552,
+ -12.525
+ ],
+ [
+ 7.694,
+ -9.574
+ ],
+ [
+ 11.104,
+ -0.51
+ ],
+ [
+ 8.54,
+ 8.829
+ ],
+ [
+ 0.6,
+ 12.524
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 2",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "mm",
+ "mm": 1,
+ "nm": "Merge Paths 1",
+ "mn": "ADBE Vector Filter - Merge",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -81,
+ 8
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 43.5,
+ -18.5
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 115.022,
+ 51.683
+ ],
+ "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": "Group 15",
+ "np": 4,
+ "cix": 2,
+ "bm": 0,
+ "ix": 15,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 3.276,
+ -0.151
+ ],
+ [
+ 0.01,
+ 0.225
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -3.116,
+ 0.143
+ ],
+ [
+ -0.01,
+ -0.224
+ ]
+ ],
+ "o": [
+ [
+ 0.013,
+ 0.289
+ ],
+ [
+ -2.571,
+ 0.086
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.022,
+ -0.481
+ ],
+ [
+ 2.734,
+ -0.029
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 5.141,
+ 16.288
+ ],
+ [
+ 0.247,
+ 16.947
+ ],
+ [
+ -3.624,
+ 16.739
+ ],
+ [
+ -5.132,
+ -16.067
+ ],
+ [
+ -0.493,
+ -17.004
+ ],
+ [
+ 3.624,
+ -16.711
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -61.5,
+ 14.5
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 60,
+ -18.5
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 95.893,
+ 47.721
+ ],
+ "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": "Group 16",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 16,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 3.276,
+ -0.15
+ ],
+ [
+ 0.01,
+ 0.225
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -3.115,
+ 0.144
+ ],
+ [
+ -0.01,
+ -0.225
+ ]
+ ],
+ "o": [
+ [
+ 0.013,
+ 0.289
+ ],
+ [
+ -2.571,
+ 0.086
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.022,
+ -0.482
+ ],
+ [
+ 2.734,
+ -0.029
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 5.141,
+ 16.288
+ ],
+ [
+ 0.247,
+ 16.947
+ ],
+ [
+ -3.624,
+ 16.739
+ ],
+ [
+ -5.132,
+ -16.066
+ ],
+ [
+ -0.493,
+ -17.004
+ ],
+ [
+ 3.624,
+ -16.71
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -49.5,
+ 12.5
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 73.5,
+ -17
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 82.79,
+ 48.323
+ ],
+ "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": "Group 17",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 17,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.05,
+ 1.092
+ ],
+ [
+ 1.317,
+ -0.061
+ ],
+ [
+ 0.416,
+ -0.388
+ ],
+ [
+ -0.033,
+ -0.706
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ -0.062,
+ -1.349
+ ],
+ [
+ -0.611,
+ 0.028
+ ],
+ [
+ -0.417,
+ 0.39
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 1.06,
+ -0.048
+ ]
+ ],
+ "v": [
+ [
+ 2.416,
+ -3.266
+ ],
+ [
+ 0.348,
+ -5.197
+ ],
+ [
+ -1.193,
+ -4.572
+ ],
+ [
+ -1.769,
+ -2.929
+ ],
+ [
+ -1.701,
+ -1.434
+ ],
+ [
+ 0.9,
+ -1.554
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ind": 1,
+ "ty": "sh",
+ "ix": 2,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.596,
+ -0.316
+ ],
+ [
+ 3.18,
+ -0.147
+ ],
+ [
+ 2.283,
+ 2.068
+ ],
+ [
+ 0.176,
+ 3.838
+ ],
+ [
+ -1.996,
+ 2.442
+ ],
+ [
+ -3.211,
+ 0.148
+ ],
+ [
+ -1.826,
+ -1.557
+ ],
+ [
+ -0.108,
+ -2.344
+ ],
+ [
+ 5.973,
+ -0.275
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.547,
+ -0.344
+ ],
+ [
+ -1.028,
+ 0.047
+ ],
+ [
+ -1.976,
+ 1.121
+ ],
+ [
+ -0.279,
+ -0.47
+ ],
+ [
+ -0.043,
+ -0.947
+ ]
+ ],
+ "o": [
+ [
+ -1.969,
+ 1.282
+ ],
+ [
+ -3.179,
+ 0.146
+ ],
+ [
+ -2.284,
+ -2.067
+ ],
+ [
+ -0.176,
+ -3.837
+ ],
+ [
+ 1.996,
+ -2.44
+ ],
+ [
+ 3.211,
+ -0.147
+ ],
+ [
+ 1.826,
+ 1.557
+ ],
+ [
+ 0.239,
+ 5.203
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.045,
+ 0.963
+ ],
+ [
+ 0.548,
+ 0.345
+ ],
+ [
+ 2.248,
+ -0.104
+ ],
+ [
+ 0.03,
+ -0.033
+ ],
+ [
+ 0.834,
+ 1.346
+ ],
+ [
+ 0.044,
+ 0.947
+ ]
+ ],
+ "v": [
+ [
+ 9.077,
+ 10.38
+ ],
+ [
+ 1.355,
+ 12.521
+ ],
+ [
+ -6.84,
+ 9.639
+ ],
+ [
+ -10.529,
+ 0.782
+ ],
+ [
+ -7.801,
+ -8.637
+ ],
+ [
+ 0.01,
+ -12.52
+ ],
+ [
+ 7.566,
+ -10.406
+ ],
+ [
+ 10.467,
+ -4.553
+ ],
+ [
+ 1.866,
+ 3.663
+ ],
+ [
+ -1.46,
+ 3.816
+ ],
+ [
+ -0.573,
+ 5.778
+ ],
+ [
+ 1.79,
+ 6.226
+ ],
+ [
+ 8.126,
+ 4.39
+ ],
+ [
+ 8.59,
+ 5.044
+ ],
+ [
+ 9.907,
+ 8.484
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 2",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "mm",
+ "mm": 1,
+ "nm": "Merge Paths 1",
+ "mn": "ADBE Vector Filter - Merge",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -32.5,
+ 8.5
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 90.5,
+ -23.5
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 64.843,
+ 53.958
+ ],
+ "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": "Group 18",
+ "np": 4,
+ "cix": 2,
+ "bm": 0,
+ "ix": 18,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 3.244,
+ -0.148
+ ],
+ [
+ 0.025,
+ 0.547
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 3.243,
+ -0.149
+ ],
+ [
+ 0.025,
+ 0.546
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -3.244,
+ 0.149
+ ],
+ [
+ -0.031,
+ -0.674
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -1.597,
+ 0.266
+ ],
+ [
+ -0.803,
+ 0.037
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.021,
+ -0.45
+ ]
+ ],
+ "o": [
+ [
+ 0.025,
+ 0.546
+ ],
+ [
+ -3.244,
+ 0.15
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.025,
+ 0.547
+ ],
+ [
+ -3.244,
+ 0.149
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.031,
+ -0.674
+ ],
+ [
+ 3.243,
+ -0.149
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.021,
+ -0.449
+ ],
+ [
+ 0.831,
+ -0.102
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 1.615,
+ 0.119
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 13.84,
+ 15.373
+ ],
+ [
+ 9.012,
+ 16.415
+ ],
+ [
+ 4.109,
+ 15.82
+ ],
+ [
+ 3.6,
+ 4.741
+ ],
+ [
+ -3.144,
+ 5.051
+ ],
+ [
+ -2.635,
+ 16.13
+ ],
+ [
+ -7.463,
+ 17.173
+ ],
+ [
+ -12.366,
+ 16.578
+ ],
+ [
+ -13.834,
+ -15.361
+ ],
+ [
+ -9.015,
+ -16.596
+ ],
+ [
+ -4.103,
+ -15.808
+ ],
+ [
+ -3.583,
+ -4.487
+ ],
+ [
+ 3.161,
+ -4.797
+ ],
+ [
+ 2.646,
+ -16.022
+ ],
+ [
+ 5.01,
+ -17.096
+ ],
+ [
+ 7.462,
+ -17.305
+ ],
+ [
+ 9.923,
+ -17.322
+ ],
+ [
+ 12.377,
+ -16.469
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -6,
+ 1.5
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 117.5,
+ -28
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 37.316,
+ 50.494
+ ],
+ "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": "Group 19",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 19,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 26.101,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 26.102
+ ],
+ [
+ -26.102,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ -26.101
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -26.102,
+ 0
+ ],
+ [
+ 0,
+ -26.101
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 26.101,
+ 0
+ ],
+ [
+ 0,
+ 26.102
+ ]
+ ],
+ "v": [
+ [
+ 33.53,
+ 47.457
+ ],
+ [
+ -33.53,
+ 47.457
+ ],
+ [
+ -80.987,
+ 0
+ ],
+ [
+ -33.53,
+ -47.457
+ ],
+ [
+ 33.53,
+ -47.457
+ ],
+ [
+ 80.987,
+ 0
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 5,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.843,
+ 0.973,
+ 0.918,
+ 0.3,
+ 0.884,
+ 0.973,
+ 0.933,
+ 0.5,
+ 0.925,
+ 0.973,
+ 0.949,
+ 0.75,
+ 0.884,
+ 0.973,
+ 0.933,
+ 1,
+ 0.843,
+ 0.973,
+ 0.918,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -79.5,
+ 0
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 81,
+ 0
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 81.237,
+ 47.707
+ ],
+ "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": "Group 20",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 20,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -11.634,
+ -6.597
+ ],
+ [
+ 9.185,
+ 13.99
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -9.185,
+ -13.989
+ ]
+ ],
+ "v": [
+ [
+ 14.152,
+ -17.277
+ ],
+ [
+ 27.861,
+ 17.277
+ ],
+ [
+ -18.677,
+ -3.163
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.682,
+ 0.941,
+ 0.922,
+ 0.6,
+ 0.763,
+ 0.957,
+ 0.92,
+ 1,
+ 0.843,
+ 0.973,
+ 0.918,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -6.5,
+ -12.5
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 22,
+ 22
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 128.536,
+ 98.328
+ ],
+ "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": "Group 21",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 21,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 2,
+ "ty": 4,
+ "nm": "Shadow",
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 269.742,
+ 388.555,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 49.07,
+ 20.088,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.667,
+ 0.667,
+ 0.667
+ ],
+ "y": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333,
+ 0.333,
+ 0.333
+ ],
+ "y": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ "t": 0,
+ "s": [
+ 100,
+ 100,
+ 100
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667,
+ 0.667,
+ 0.667
+ ],
+ "y": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333,
+ 0.333,
+ 0.333
+ ],
+ "y": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ "t": 30,
+ "s": [
+ 150,
+ 150,
+ 100
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667,
+ 0.667,
+ 0.667
+ ],
+ "y": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333,
+ 0.333,
+ 0.333
+ ],
+ "y": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ "t": 60,
+ "s": [
+ 100,
+ 100,
+ 100
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667,
+ 0.667,
+ 0.667
+ ],
+ "y": [
+ 1,
+ 1,
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333,
+ 0.333,
+ 0.333
+ ],
+ "y": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ "t": 90,
+ "s": [
+ 150,
+ 150,
+ 100
+ ]
+ },
+ {
+ "t": 120,
+ "s": [
+ 100,
+ 100,
+ 100
+ ]
+ }
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "d": 1,
+ "ty": "el",
+ "s": {
+ "a": 0,
+ "k": [
+ 40,
+ 40
+ ],
+ "ix": 2
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 3
+ },
+ "nm": "Ellipse Path 1",
+ "mn": "ADBE Vector Shape - Ellipse",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.737,
+ 0.843,
+ 0.839,
+ 0.6,
+ 0.869,
+ 0.922,
+ 0.92,
+ 1,
+ 1,
+ 1,
+ 1,
+ 0,
+ 1,
+ 0.5,
+ 0.5,
+ 1,
+ 0
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 19.388,
+ 0
+ ],
+ "ix": 6
+ },
+ "t": 2,
+ "h": {
+ "a": 0,
+ "k": 0,
+ "ix": 7
+ },
+ "a": {
+ "a": 0,
+ "k": 0,
+ "ix": 8
+ },
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 49.078,
+ 20.033
+ ],
+ "ix": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 1
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 245,
+ 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": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 3,
+ "ty": 4,
+ "nm": "Hand Right",
+ "parent": 5,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 94.514,
+ 18.891,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 20.187,
+ 13.185,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.517
+ ],
+ [
+ 0.517,
+ 0
+ ],
+ [
+ 0,
+ 0.517
+ ],
+ [
+ -0.517,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.517
+ ],
+ [
+ -0.517,
+ 0
+ ],
+ [
+ 0,
+ -0.517
+ ],
+ [
+ 0.517,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 0.936,
+ -0.001
+ ],
+ [
+ 0,
+ 0.937
+ ],
+ [
+ -0.936,
+ -0.001
+ ],
+ [
+ 0,
+ -0.937
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 27.689,
+ 29.193
+ ],
+ "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": "Group 1",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.103,
+ 1.948
+ ],
+ [
+ 0.962,
+ 3.772
+ ],
+ [
+ -1.025,
+ 0.952
+ ],
+ [
+ -0.297,
+ -0.095
+ ],
+ [
+ 0.193,
+ -5.295
+ ],
+ [
+ 1.187,
+ -0.161
+ ],
+ [
+ 0.333,
+ 0.294
+ ]
+ ],
+ "o": [
+ [
+ -0.135,
+ -2.564
+ ],
+ [
+ -1.258,
+ -4.933
+ ],
+ [
+ 0.667,
+ -0.62
+ ],
+ [
+ 4.509,
+ 1.438
+ ],
+ [
+ -0.12,
+ 3.242
+ ],
+ [
+ -0.188,
+ 0.025
+ ],
+ [
+ -1.326,
+ -1.172
+ ]
+ ],
+ "v": [
+ [
+ -0.191,
+ 5.752
+ ],
+ [
+ -1.769,
+ -2.47
+ ],
+ [
+ -3.58,
+ -10.761
+ ],
+ [
+ -1.301,
+ -10.867
+ ],
+ [
+ 4.412,
+ 4.328
+ ],
+ [
+ 2.313,
+ 11.356
+ ],
+ [
+ 1.327,
+ 11.062
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 25.719,
+ 14.393
+ ],
+ "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": "Group 2",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -0.019,
+ -0.036
+ ],
+ [
+ 1.038,
+ -1.342
+ ],
+ [
+ 0.266,
+ 0.312
+ ],
+ [
+ 0.065,
+ 3.601
+ ],
+ [
+ -4.768,
+ 5.677
+ ],
+ [
+ -2.075,
+ 1.259
+ ],
+ [
+ -0.45,
+ -23.79
+ ],
+ [
+ -4.198,
+ -4.932
+ ]
+ ],
+ "o": [
+ [
+ -0.919,
+ 1.424
+ ],
+ [
+ -0.331,
+ -0.34
+ ],
+ [
+ -4.207,
+ -4.923
+ ],
+ [
+ -0.45,
+ -23.863
+ ],
+ [
+ 0.349,
+ -0.422
+ ],
+ [
+ -4.702,
+ 5.658
+ ],
+ [
+ 0.065,
+ 3.601
+ ],
+ [
+ 0.027,
+ 0.028
+ ]
+ ],
+ "v": [
+ [
+ 5.907,
+ 22.536
+ ],
+ [
+ 2.985,
+ 26.67
+ ],
+ [
+ 2.094,
+ 25.678
+ ],
+ [
+ -2.223,
+ 10.779
+ ],
+ [
+ -1.139,
+ -23.473
+ ],
+ [
+ 2.562,
+ -26.67
+ ],
+ [
+ 1.515,
+ 7.537
+ ],
+ [
+ 5.833,
+ 22.444
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -11.5,
+ 7
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 22,
+ -12
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 6.156,
+ 32.475
+ ],
+ "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": "Group 3",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 3,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.067,
+ 3.598
+ ],
+ [
+ -4.762,
+ 5.677
+ ],
+ [
+ -4.593,
+ 0.85
+ ],
+ [
+ -1.571,
+ -0.891
+ ],
+ [
+ 6.289,
+ -14.804
+ ],
+ [
+ 4.484,
+ 0.206
+ ],
+ [
+ 0.952,
+ 1.114
+ ]
+ ],
+ "o": [
+ [
+ -0.449,
+ -23.861
+ ],
+ [
+ 0.547,
+ -0.652
+ ],
+ [
+ 3.66,
+ -0.677
+ ],
+ [
+ 9.549,
+ 5.409
+ ],
+ [
+ -1.371,
+ 3.227
+ ],
+ [
+ -1.837,
+ -0.085
+ ],
+ [
+ -4.205,
+ -4.924
+ ]
+ ],
+ "v": [
+ [
+ -11.72,
+ 10.957
+ ],
+ [
+ -10.637,
+ -23.299
+ ],
+ [
+ -2.703,
+ -28.13
+ ],
+ [
+ 5.849,
+ -26.743
+ ],
+ [
+ 6.275,
+ 16.921
+ ],
+ [
+ -3.259,
+ 28.6
+ ],
+ [
+ -7.402,
+ 25.857
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 23,
+ 13
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ -30,
+ -15
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 19.394,
+ 29.057
+ ],
+ "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": "Group 4",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 4,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 4,
+ "ty": 3,
+ "nm": "Body Null",
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 0,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": 0.667,
+ "y": 1
+ },
+ "o": {
+ "x": 0.333,
+ "y": 0
+ },
+ "t": 0,
+ "s": [
+ 273.389,
+ 222.954,
+ 0
+ ],
+ "to": [
+ 0,
+ 0,
+ 0
+ ],
+ "ti": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ {
+ "i": {
+ "x": 0.667,
+ "y": 1
+ },
+ "o": {
+ "x": 0.333,
+ "y": 0
+ },
+ "t": 30,
+ "s": [
+ 273.389,
+ 202.954,
+ 0
+ ],
+ "to": [
+ 0,
+ 0,
+ 0
+ ],
+ "ti": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ {
+ "i": {
+ "x": 0.667,
+ "y": 1
+ },
+ "o": {
+ "x": 0.333,
+ "y": 0
+ },
+ "t": 60,
+ "s": [
+ 273.389,
+ 222.954,
+ 0
+ ],
+ "to": [
+ 0,
+ 0,
+ 0
+ ],
+ "ti": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ {
+ "i": {
+ "x": 0.667,
+ "y": 1
+ },
+ "o": {
+ "x": 0.333,
+ "y": 0
+ },
+ "t": 90,
+ "s": [
+ 273.389,
+ 202.954,
+ 0
+ ],
+ "to": [
+ 0,
+ 0,
+ 0
+ ],
+ "ti": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ {
+ "t": 120,
+ "s": [
+ 273.389,
+ 222.954,
+ 0
+ ]
+ }
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 5,
+ "ty": 4,
+ "nm": "Body",
+ "parent": 4,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ -2.28,
+ 103.461,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 51.422,
+ 39.415,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 3.996,
+ -4.977
+ ],
+ [
+ 0.193,
+ -3.243
+ ],
+ [
+ -2.434,
+ 2.967
+ ],
+ [
+ -6.521,
+ -0.027
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -6.384,
+ 0.027
+ ],
+ [
+ -2.333,
+ 2.904
+ ],
+ [
+ 0.156,
+ -3.326
+ ],
+ [
+ 4.133,
+ -5.043
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 25.576,
+ -8.52
+ ],
+ [
+ -5.185,
+ -8.391
+ ],
+ [
+ -21.737,
+ -0.658
+ ],
+ [
+ -25.576,
+ 8.666
+ ],
+ [
+ -21.617,
+ -0.887
+ ],
+ [
+ -4.634,
+ -8.639
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -13.5,
+ 7.5
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 33,
+ -45
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 25.85,
+ 8.921
+ ],
+ "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": "Group 1",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.441
+ ],
+ [
+ 0.009,
+ -0.193
+ ],
+ [
+ 0.221,
+ -0.653
+ ],
+ [
+ 5.318,
+ -8.248
+ ],
+ [
+ 1.038,
+ -1.342
+ ],
+ [
+ 1.653,
+ -1.8
+ ],
+ [
+ 1.792,
+ -0.624
+ ],
+ [
+ 3.848,
+ -0.037
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 6.549,
+ 2.316
+ ],
+ [
+ 3.665,
+ 3.996
+ ],
+ [
+ 8.873,
+ 27.114
+ ],
+ [
+ 0.101,
+ 1.81
+ ],
+ [
+ -0.028,
+ 0.524
+ ],
+ [
+ -2.333,
+ 2.902
+ ],
+ [
+ -6.383,
+ 0.027
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -4.142,
+ -5.042
+ ],
+ [
+ -0.467,
+ -2.718
+ ],
+ [
+ -0.037,
+ -0.385
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.211
+ ],
+ [
+ -0.073,
+ 1.929
+ ],
+ [
+ -6.329,
+ 19.335
+ ],
+ [
+ -0.919,
+ 1.424
+ ],
+ [
+ -1.36,
+ 1.791
+ ],
+ [
+ -3.674,
+ 3.996
+ ],
+ [
+ -6.549,
+ 2.316
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -3.858,
+ -0.037
+ ],
+ [
+ -1.791,
+ -0.624
+ ],
+ [
+ -10.104,
+ -10.994
+ ],
+ [
+ -0.211,
+ -0.625
+ ],
+ [
+ -0.028,
+ -0.523
+ ],
+ [
+ 0.193,
+ -3.242
+ ],
+ [
+ 3.995,
+ -4.979
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 6.521,
+ -0.028
+ ],
+ [
+ 2.002,
+ 2.444
+ ],
+ [
+ 0.065,
+ 0.386
+ ],
+ [
+ 0.037,
+ 0.432
+ ]
+ ],
+ "v": [
+ [
+ 51.167,
+ -21.292
+ ],
+ [
+ 51.158,
+ -20.686
+ ],
+ [
+ 50.413,
+ -16.652
+ ],
+ [
+ 34.973,
+ 21.126
+ ],
+ [
+ 32.052,
+ 25.26
+ ],
+ [
+ 27.551,
+ 30.596
+ ],
+ [
+ 16.529,
+ 37.025
+ ],
+ [
+ 0.345,
+ 38.954
+ ],
+ [
+ -0.326,
+ 38.954
+ ],
+ [
+ -16.51,
+ 37.025
+ ],
+ [
+ -27.533,
+ 30.596
+ ],
+ [
+ -50.395,
+ -16.652
+ ],
+ [
+ -51.128,
+ -20.438
+ ],
+ [
+ -51.139,
+ -22.008
+ ],
+ [
+ -47.298,
+ -31.33
+ ],
+ [
+ -30.747,
+ -39.064
+ ],
+ [
+ 0.014,
+ -39.193
+ ],
+ [
+ 30.215,
+ -39.312
+ ],
+ [
+ 47.198,
+ -31.561
+ ],
+ [
+ 50.945,
+ -23.762
+ ],
+ [
+ 51.102,
+ -22.596
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 5,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.327,
+ 0.304,
+ 0.79,
+ 0.686,
+ 0.545,
+ 0.557,
+ 0.918,
+ 0.702,
+ 0.773,
+ 0.714,
+ 0.949,
+ 0.629,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -26.303,
+ 27.163
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 41.011,
+ -61.798
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 51.417,
+ 39.59
+ ],
+ "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": "Group 2",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 6,
+ "ty": 3,
+ "nm": "Face Null",
+ "parent": 4,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 0,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": 0.833,
+ "y": 0.833
+ },
+ "o": {
+ "x": 0.167,
+ "y": 0.167
+ },
+ "t": 0,
+ "s": [
+ 0,
+ 0,
+ 0
+ ],
+ "to": [
+ -1.333,
+ 0,
+ 0
+ ],
+ "ti": [
+ 1.333,
+ 0,
+ 0
+ ]
+ },
+ {
+ "i": {
+ "x": 0.833,
+ "y": 0.833
+ },
+ "o": {
+ "x": 0.167,
+ "y": 0.167
+ },
+ "t": 10,
+ "s": [
+ -8,
+ 0,
+ 0
+ ],
+ "to": [
+ 0,
+ 0,
+ 0
+ ],
+ "ti": [
+ 0,
+ 0,
+ 0
+ ]
+ },
+ {
+ "i": {
+ "x": 0.833,
+ "y": 0.833
+ },
+ "o": {
+ "x": 0.167,
+ "y": 0.167
+ },
+ "t": 60,
+ "s": [
+ -8,
+ 0,
+ 0
+ ],
+ "to": [
+ 1.333,
+ 0,
+ 0
+ ],
+ "ti": [
+ -1.333,
+ 0,
+ 0
+ ]
+ },
+ {
+ "t": 70,
+ "s": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 7,
+ "ty": 4,
+ "nm": "Mouth",
+ "parent": 6,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.833
+ ],
+ "y": [
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167
+ ],
+ "y": [
+ 0.167
+ ]
+ },
+ "t": 0,
+ "s": [
+ 0
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.833
+ ],
+ "y": [
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167
+ ],
+ "y": [
+ 0.167
+ ]
+ },
+ "t": 10,
+ "s": [
+ 5
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.833
+ ],
+ "y": [
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167
+ ],
+ "y": [
+ 0.167
+ ]
+ },
+ "t": 60,
+ "s": [
+ 5
+ ]
+ },
+ {
+ "t": 70,
+ "s": [
+ 0
+ ]
+ }
+ ],
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ -2.54,
+ 27.714,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 15.546,
+ 0.266,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -0.174,
+ 1.663
+ ],
+ [
+ 7.404,
+ -0.707
+ ],
+ [
+ 2.168,
+ 6.705
+ ],
+ [
+ -1.571,
+ 0.157
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ -0.734,
+ 7.128
+ ],
+ [
+ -7.302,
+ 0.707
+ ],
+ [
+ 0.579,
+ 1.434
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 1.663,
+ -0.165
+ ]
+ ],
+ "v": [
+ [
+ 14.935,
+ -7.201
+ ],
+ [
+ 1.13,
+ 6.494
+ ],
+ [
+ -14.935,
+ -4.032
+ ],
+ [
+ -11.279,
+ -1.883
+ ],
+ [
+ 11.72,
+ -4.097
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.051,
+ 0.663,
+ 0.671,
+ 0.6,
+ 0.461,
+ 0.822,
+ 0.614,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -2.375,
+ 0.625
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 23.5,
+ -28.25
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 15.805,
+ 10.455
+ ],
+ "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": "Group 1",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.076,
+ -0.742
+ ],
+ [
+ 1.664,
+ -0.161
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.485,
+ 1.599
+ ],
+ [
+ 0.113,
+ 0.753
+ ],
+ [
+ -0.13,
+ 0.166
+ ],
+ [
+ -0.21,
+ 0.021
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -0.157,
+ -0.137
+ ],
+ [
+ -0.008,
+ -0.208
+ ]
+ ],
+ "o": [
+ [
+ -0.169,
+ 1.663
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -1.663,
+ 0.161
+ ],
+ [
+ -0.215,
+ -0.71
+ ],
+ [
+ -0.031,
+ -0.209
+ ],
+ [
+ 0.13,
+ -0.166
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0.206,
+ -0.02
+ ],
+ [
+ 0.157,
+ 0.136
+ ],
+ [
+ 0.034,
+ 0.764
+ ]
+ ],
+ "v": [
+ [
+ 15.195,
+ -1.24
+ ],
+ [
+ 11.977,
+ 1.865
+ ],
+ [
+ -11.017,
+ 4.082
+ ],
+ [
+ -14.769,
+ 1.652
+ ],
+ [
+ -15.263,
+ -0.547
+ ],
+ [
+ -15.109,
+ -1.134
+ ],
+ [
+ -14.577,
+ -1.425
+ ],
+ [
+ 14.432,
+ -4.223
+ ],
+ [
+ 15.001,
+ -4.04
+ ],
+ [
+ 15.26,
+ -3.502
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 15.544,
+ 4.493
+ ],
+ "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": "Group 2",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 8,
+ "ty": 3,
+ "nm": "EyesNull",
+ "parent": 6,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 0,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ -23.389,
+ 27.046,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 9,
+ "ty": 4,
+ "nm": "Eyes Dots",
+ "parent": 8,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 23.389,
+ -27.046,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 47.715,
+ 20.196,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "hasMask": true,
+ "masksProperties": [
+ {
+ "inv": false,
+ "mode": "a",
+ "pt": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": 0.833,
+ "y": 0.833
+ },
+ "o": {
+ "x": 0.167,
+ "y": 0.167
+ },
+ "t": 30,
+ "s": [
+ {
+ "i": [
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ],
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ],
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 27.5,
+ 22.25
+ ],
+ [
+ 17.5,
+ 32.25
+ ],
+ [
+ 7.5,
+ 22.25
+ ],
+ [
+ 17.5,
+ 12.25
+ ]
+ ],
+ "c": true
+ }
+ ]
+ },
+ {
+ "i": {
+ "x": 0.833,
+ "y": 0.833
+ },
+ "o": {
+ "x": 0.167,
+ "y": 0.167
+ },
+ "t": 35,
+ "s": [
+ {
+ "i": [
+ [
+ 0,
+ -0.004
+ ],
+ [
+ 5.523,
+ 0
+ ],
+ [
+ 0,
+ 0.004
+ ],
+ [
+ -5.523,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.004
+ ],
+ [
+ -5.523,
+ 0
+ ],
+ [
+ 0,
+ -0.004
+ ],
+ [
+ 5.523,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 27.5,
+ 22.25
+ ],
+ [
+ 17.5,
+ 22.258
+ ],
+ [
+ 7.5,
+ 22.25
+ ],
+ [
+ 17.5,
+ 22.242
+ ]
+ ],
+ "c": true
+ }
+ ]
+ },
+ {
+ "t": 40,
+ "s": [
+ {
+ "i": [
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ],
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ],
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 27.5,
+ 22.25
+ ],
+ [
+ 17.5,
+ 32.25
+ ],
+ [
+ 7.5,
+ 22.25
+ ],
+ [
+ 17.5,
+ 12.25
+ ]
+ ],
+ "c": true
+ }
+ ]
+ }
+ ],
+ "ix": 1
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 3
+ },
+ "x": {
+ "a": 0,
+ "k": 0,
+ "ix": 4
+ },
+ "nm": "Mask 1"
+ },
+ {
+ "inv": false,
+ "mode": "a",
+ "pt": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": 0.833,
+ "y": 0.833
+ },
+ "o": {
+ "x": 0.167,
+ "y": 0.167
+ },
+ "t": 30,
+ "s": [
+ {
+ "i": [
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ],
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ],
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 74.5,
+ 22.257
+ ],
+ [
+ 64.5,
+ 32.257
+ ],
+ [
+ 54.5,
+ 22.257
+ ],
+ [
+ 64.5,
+ 12.257
+ ]
+ ],
+ "c": true
+ }
+ ]
+ },
+ {
+ "i": {
+ "x": 0.833,
+ "y": 0.833
+ },
+ "o": {
+ "x": 0.167,
+ "y": 0.167
+ },
+ "t": 35,
+ "s": [
+ {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 5.523,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -5.523,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -5.523,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 5.523,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 74.5,
+ 22.257
+ ],
+ [
+ 64.5,
+ 22.258
+ ],
+ [
+ 54.5,
+ 22.257
+ ],
+ [
+ 64.5,
+ 22.257
+ ]
+ ],
+ "c": true
+ }
+ ]
+ },
+ {
+ "t": 40,
+ "s": [
+ {
+ "i": [
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ],
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ],
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 74.5,
+ 22.257
+ ],
+ [
+ 64.5,
+ 32.257
+ ],
+ [
+ 54.5,
+ 22.257
+ ],
+ [
+ 64.5,
+ 12.257
+ ]
+ ],
+ "c": true
+ }
+ ]
+ }
+ ],
+ "ix": 1
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 3
+ },
+ "x": {
+ "a": 0,
+ "k": 0,
+ "ix": 4
+ },
+ "nm": "Mask 2"
+ }
+ ],
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.427
+ ],
+ [
+ 0.427,
+ 0
+ ],
+ [
+ 0,
+ 0.427
+ ],
+ [
+ -0.427,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.427
+ ],
+ [
+ -0.427,
+ 0
+ ],
+ [
+ 0,
+ -0.427
+ ],
+ [
+ 0.427,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 0.774,
+ 0
+ ],
+ [
+ 0.001,
+ 0.773
+ ],
+ [
+ -0.774,
+ 0
+ ],
+ [
+ 0.001,
+ -0.773
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 58.093,
+ 28.026
+ ],
+ "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": "Group 2",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.854
+ ],
+ [
+ 0.855,
+ 0
+ ],
+ [
+ 0,
+ 0.854
+ ],
+ [
+ -0.853,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.854
+ ],
+ [
+ -0.853,
+ 0
+ ],
+ [
+ 0,
+ -0.854
+ ],
+ [
+ 0.855,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 1.547,
+ 0
+ ],
+ [
+ -0.001,
+ 1.546
+ ],
+ [
+ -1.547,
+ 0
+ ],
+ [
+ -0.001,
+ -1.546
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 62.703,
+ 30.346
+ ],
+ "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": "Group 3",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -2.141
+ ],
+ [
+ 2.141,
+ 0
+ ],
+ [
+ 0,
+ 2.141
+ ],
+ [
+ -2.141,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 2.141
+ ],
+ [
+ -2.141,
+ 0
+ ],
+ [
+ 0,
+ -2.141
+ ],
+ [
+ 2.141,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 3.877,
+ -0.001
+ ],
+ [
+ -0.001,
+ 3.876
+ ],
+ [
+ -3.877,
+ -0.001
+ ],
+ [
+ -0.001,
+ -3.876
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 67.077,
+ 19.61
+ ],
+ "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": "Group 4",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 3,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.427
+ ],
+ [
+ 0.427,
+ 0
+ ],
+ [
+ 0,
+ 0.427
+ ],
+ [
+ -0.427,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.427
+ ],
+ [
+ -0.427,
+ 0
+ ],
+ [
+ 0,
+ -0.427
+ ],
+ [
+ 0.427,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 0.773,
+ 0
+ ],
+ [
+ 0,
+ 0.773
+ ],
+ [
+ -0.773,
+ 0
+ ],
+ [
+ 0,
+ -0.773
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 11.202,
+ 28.026
+ ],
+ "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": "Group 8",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 7,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -0.854
+ ],
+ [
+ 0.855,
+ 0
+ ],
+ [
+ 0,
+ 0.854
+ ],
+ [
+ -0.854,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0.854
+ ],
+ [
+ -0.854,
+ 0
+ ],
+ [
+ 0,
+ -0.854
+ ],
+ [
+ 0.855,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 1.547,
+ 0
+ ],
+ [
+ -0.001,
+ 1.546
+ ],
+ [
+ -1.547,
+ 0
+ ],
+ [
+ -0.001,
+ -1.546
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 15.811,
+ 30.346
+ ],
+ "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": "Group 9",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 8,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -2.141
+ ],
+ [
+ 2.141,
+ 0
+ ],
+ [
+ 0,
+ 2.141
+ ],
+ [
+ -2.142,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 2.141
+ ],
+ [
+ -2.142,
+ 0
+ ],
+ [
+ 0,
+ -2.141
+ ],
+ [
+ 2.141,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 3.877,
+ -0.001
+ ],
+ [
+ 0.001,
+ 3.876
+ ],
+ [
+ -3.877,
+ -0.001
+ ],
+ [
+ 0.001,
+ -3.876
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 20.185,
+ 19.61
+ ],
+ "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": "Group 10",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 9,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 10,
+ "ty": 4,
+ "nm": "Eyes 3",
+ "parent": 8,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ -7,
+ -25,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ],
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 5.523
+ ],
+ [
+ -5.523,
+ 0
+ ],
+ [
+ 0,
+ -5.523
+ ],
+ [
+ 5.523,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 10,
+ 0
+ ],
+ [
+ 0,
+ 10
+ ],
+ [
+ -10,
+ 0
+ ],
+ [
+ 0,
+ -10
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 0.019607843137,
+ 0.074509803922,
+ 0.113725497676,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "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": "Black 3",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ty": "rc",
+ "d": 1,
+ "s": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 30,
+ "s": [
+ 20,
+ 20
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 35,
+ "s": [
+ 20,
+ 0
+ ]
+ },
+ {
+ "t": 40,
+ "s": [
+ 20,
+ 20
+ ]
+ }
+ ],
+ "ix": 2
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 3
+ },
+ "r": {
+ "a": 0,
+ "k": 20,
+ "ix": 4
+ },
+ "nm": "Rectangle Path 1",
+ "mn": "ADBE Vector Shape - Rect",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 0.019607843137,
+ 0.074509803922,
+ 0.113725497676,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "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": "Black 2",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ty": "rc",
+ "d": 1,
+ "s": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 30,
+ "s": [
+ 25,
+ 25
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 35,
+ "s": [
+ 25,
+ 0
+ ]
+ },
+ {
+ "t": 40,
+ "s": [
+ 25,
+ 25
+ ]
+ }
+ ],
+ "ix": 2
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 3
+ },
+ "r": {
+ "a": 0,
+ "k": 25,
+ "ix": 4
+ },
+ "nm": "Rectangle Path 1",
+ "mn": "ADBE Vector Shape - Rect",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "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": "White",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 3,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ty": "rc",
+ "d": 1,
+ "s": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 30,
+ "s": [
+ 35,
+ 35
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 35,
+ "s": [
+ 35,
+ 0
+ ]
+ },
+ {
+ "t": 40,
+ "s": [
+ 35,
+ 35
+ ]
+ }
+ ],
+ "ix": 2
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 3
+ },
+ "r": {
+ "a": 0,
+ "k": 35,
+ "ix": 4
+ },
+ "nm": "Rectangle Path 1",
+ "mn": "ADBE Vector Shape - Rect",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.196,
+ 0.502,
+ 0.988,
+ 0.6,
+ 0.098,
+ 0.251,
+ 0.494,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0.5,
+ 0.75,
+ 1,
+ 0.5,
+ 1,
+ 0.5,
+ 1,
+ 0.5
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 17.25,
+ 0.25
+ ],
+ "ix": 6
+ },
+ "t": 2,
+ "h": {
+ "a": 0,
+ "k": 0,
+ "ix": 7
+ },
+ "a": {
+ "a": 0,
+ "k": 0,
+ "ix": 8
+ },
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "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": "Blue Glow",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 4,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 11,
+ "ty": 4,
+ "nm": "Eyes 2",
+ "parent": 8,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 40,
+ -25,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 0,
+ 0,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ty": "rc",
+ "d": 1,
+ "s": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 30,
+ "s": [
+ 20,
+ 20
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 35,
+ "s": [
+ 20,
+ 0
+ ]
+ },
+ {
+ "t": 40,
+ "s": [
+ 20,
+ 20
+ ]
+ }
+ ],
+ "ix": 2
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 3
+ },
+ "r": {
+ "a": 0,
+ "k": 20,
+ "ix": 4
+ },
+ "nm": "Rectangle Path 1",
+ "mn": "ADBE Vector Shape - Rect",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 0.019607843137,
+ 0.074509803922,
+ 0.113725497676,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "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": "Black 2",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ty": "rc",
+ "d": 1,
+ "s": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 30,
+ "s": [
+ 25,
+ 25
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 35,
+ "s": [
+ 25,
+ 0
+ ]
+ },
+ {
+ "t": 40,
+ "s": [
+ 25,
+ 25
+ ]
+ }
+ ],
+ "ix": 2
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 3
+ },
+ "r": {
+ "a": 0,
+ "k": 25,
+ "ix": 4
+ },
+ "nm": "Rectangle Path 1",
+ "mn": "ADBE Vector Shape - Rect",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "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": "White",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ty": "rc",
+ "d": 1,
+ "s": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 30,
+ "s": [
+ 35,
+ 35
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.833,
+ 0.833
+ ],
+ "y": [
+ 0.833,
+ 0.833
+ ]
+ },
+ "o": {
+ "x": [
+ 0.167,
+ 0.167
+ ],
+ "y": [
+ 0.167,
+ 0.167
+ ]
+ },
+ "t": 35,
+ "s": [
+ 35,
+ 0
+ ]
+ },
+ {
+ "t": 40,
+ "s": [
+ 35,
+ 35
+ ]
+ }
+ ],
+ "ix": 2
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 3
+ },
+ "r": {
+ "a": 0,
+ "k": 35,
+ "ix": 4
+ },
+ "nm": "Rectangle Path 1",
+ "mn": "ADBE Vector Shape - Rect",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.196,
+ 0.502,
+ 0.988,
+ 0.6,
+ 0.098,
+ 0.251,
+ 0.494,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0.5,
+ 0.75,
+ 1,
+ 0.5,
+ 1,
+ 0.5,
+ 1,
+ 0.5
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 17.25,
+ 0.25
+ ],
+ "ix": 6
+ },
+ "t": 2,
+ "h": {
+ "a": 0,
+ "k": 0,
+ "ix": 7
+ },
+ "a": {
+ "a": 0,
+ "k": 0,
+ "ix": 8
+ },
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 0,
+ 0
+ ],
+ "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": "Blue Glow",
+ "np": 3,
+ "cix": 2,
+ "bm": 0,
+ "ix": 3,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 12,
+ "ty": 4,
+ "nm": "Eye Part",
+ "parent": 8,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 17.293,
+ 33.405,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 76.946,
+ 127.006,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.832,
+ -0.587
+ ],
+ [
+ 13.097,
+ 8.618
+ ],
+ [
+ -0.27,
+ 0.628
+ ],
+ [
+ -4.099,
+ -1.901
+ ]
+ ],
+ "o": [
+ [
+ -0.7,
+ 0.494
+ ],
+ [
+ -4.603,
+ -3.03
+ ],
+ [
+ 0.274,
+ -0.638
+ ],
+ [
+ 13.057,
+ 6.058
+ ]
+ ],
+ "v": [
+ [
+ 13.497,
+ 12.012
+ ],
+ [
+ -5.18,
+ -6.052
+ ],
+ [
+ -14.059,
+ -11.868
+ ],
+ [
+ -4.567,
+ -9.419
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 117.48,
+ 59.382
+ ],
+ "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": "Group 7",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 4.93,
+ -2.437
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 2.287,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 2.007,
+ 0.992
+ ],
+ [
+ -0.697,
+ 5.049
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -18.985,
+ 0.987
+ ],
+ [
+ -8.793,
+ -0.051
+ ],
+ [
+ -6.41,
+ -0.33
+ ],
+ [
+ -2.367,
+ -17.164
+ ],
+ [
+ -0.017,
+ -0.124
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.008,
+ 0.992
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.286,
+ 0
+ ],
+ [
+ -4.93,
+ -2.437
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 2.358,
+ -17.099
+ ],
+ [
+ 8.033,
+ -0.418
+ ],
+ [
+ 6.889,
+ 0.04
+ ],
+ [
+ 19.058,
+ 0.983
+ ],
+ [
+ 0.016,
+ 0.123
+ ],
+ [
+ 0.696,
+ 5.049
+ ]
+ ],
+ "v": [
+ [
+ 52.57,
+ 21.564
+ ],
+ [
+ 52.57,
+ 21.564
+ ],
+ [
+ 46.026,
+ 23.076
+ ],
+ [
+ -46.026,
+ 23.076
+ ],
+ [
+ -52.569,
+ 21.564
+ ],
+ [
+ -59.585,
+ 9.158
+ ],
+ [
+ -59.534,
+ 8.79
+ ],
+ [
+ -22.704,
+ -22.442
+ ],
+ [
+ 2.552,
+ -23.025
+ ],
+ [
+ 22.509,
+ -22.453
+ ],
+ [
+ 59.535,
+ 8.788
+ ],
+ [
+ 59.586,
+ 9.158
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.012,
+ 0.051,
+ 0.078,
+ 0.6,
+ 0.027,
+ 0.118,
+ 0.175,
+ 1,
+ 0.043,
+ 0.184,
+ 0.271,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -1,
+ 21
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ -0.5,
+ -18.5
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 76.946,
+ 66.73
+ ],
+ "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": "Group 4",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 5,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 13,
+ "ty": 4,
+ "nm": "Head",
+ "parent": 4,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ -6.096,
+ 60.451,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 76.946,
+ 127.006,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0.186,
+ -0.027
+ ],
+ [
+ 0.764,
+ 1.418
+ ],
+ [
+ 0.408,
+ 0.562
+ ],
+ [
+ 0.35,
+ -0.003
+ ],
+ [
+ -0.001,
+ -0.041
+ ],
+ [
+ -2.386,
+ 0.048
+ ],
+ [
+ -1.719,
+ -1.803
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ -0.156,
+ 0.022
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -1.316,
+ -1.81
+ ],
+ [
+ -6.944,
+ 0.061
+ ],
+ [
+ 0.001,
+ 0.036
+ ],
+ [
+ 6.732,
+ -0.137
+ ],
+ [
+ 0.713,
+ 0.748
+ ],
+ [
+ 0.488,
+ 1.322
+ ]
+ ],
+ "v": [
+ [
+ 9.483,
+ 3.099
+ ],
+ [
+ 8.463,
+ 0.786
+ ],
+ [
+ 7.698,
+ -0.438
+ ],
+ [
+ 1.575,
+ -2.205
+ ],
+ [
+ -9.83,
+ -2.543
+ ],
+ [
+ -4.188,
+ -2.622
+ ],
+ [
+ 8.272,
+ -1.318
+ ],
+ [
+ 9.343,
+ 0.404
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 87.657,
+ 3.405
+ ],
+ "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": "Group 1",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -1.205
+ ],
+ [
+ 1.205,
+ 0
+ ],
+ [
+ 0,
+ 1.205
+ ],
+ [
+ -1.205,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 1.205
+ ],
+ [
+ -1.205,
+ 0
+ ],
+ [
+ 0,
+ -1.205
+ ],
+ [
+ 1.205,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 2.182,
+ 0
+ ],
+ [
+ -0.001,
+ 2.182
+ ],
+ [
+ -2.182,
+ 0
+ ],
+ [
+ -0.001,
+ -2.182
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 107.529,
+ 17.128
+ ],
+ "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": "Group 2",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 3,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -0.196,
+ -6.914
+ ],
+ [
+ 2.741,
+ -0.299
+ ],
+ [
+ 2.114,
+ 2.706
+ ],
+ [
+ -1.816,
+ 1.938
+ ]
+ ],
+ "o": [
+ [
+ 0.083,
+ 2.931
+ ],
+ [
+ -2.568,
+ 0.281
+ ],
+ [
+ -2.085,
+ -2.667
+ ],
+ [
+ 2.394,
+ -2.557
+ ]
+ ],
+ "v": [
+ [
+ 9.173,
+ 2.656
+ ],
+ [
+ 4.122,
+ 9.39
+ ],
+ [
+ -2.611,
+ 4.342
+ ],
+ [
+ -7.439,
+ -7.115
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 121.818,
+ 27.823
+ ],
+ "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": "Group 3",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 4,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 19.53,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 19.449
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -34.605,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ -34.605
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 19.53
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -19.45,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ -34.605
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 34.606,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 76.697,
+ 22.963
+ ],
+ [
+ 41.333,
+ 58.326
+ ],
+ [
+ -41.333,
+ 58.326
+ ],
+ [
+ -76.697,
+ 22.963
+ ],
+ [
+ -76.697,
+ 4.592
+ ],
+ [
+ -13.779,
+ -58.326
+ ],
+ [
+ 13.777,
+ -58.326
+ ],
+ [
+ 76.697,
+ 4.592
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.024,
+ 0.745,
+ 0.847,
+ 0.6,
+ 0.447,
+ 0.863,
+ 0.702,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -46.5,
+ 55
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 55,
+ -42
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 76.946,
+ 68.68
+ ],
+ "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": "Group 5",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 6,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 2.494,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 2.495
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.495,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ -2.495
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ -2.495,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ -2.495
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 2.494,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 2.495
+ ]
+ ],
+ "v": [
+ [
+ 16.917,
+ 10.563
+ ],
+ [
+ -16.917,
+ 10.563
+ ],
+ [
+ -21.434,
+ 6.046
+ ],
+ [
+ -21.434,
+ -6.046
+ ],
+ [
+ -16.917,
+ -10.563
+ ],
+ [
+ 16.917,
+ -10.563
+ ],
+ [
+ 21.434,
+ -6.046
+ ],
+ [
+ 21.434,
+ 6.046
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.024,
+ 0.745,
+ 0.847,
+ 0.6,
+ 0.447,
+ 0.863,
+ 0.702,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -14,
+ 15.5
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 13.5,
+ -14
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 76.947,
+ 10.813
+ ],
+ "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": "Group 6",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 7,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 14,
+ "ty": 4,
+ "nm": "Head Part",
+ "parent": 13,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 0,
+ "k": 0,
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 76.946,
+ 3.618,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 6.527,
+ 40.817,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -1.057
+ ],
+ [
+ 1.057,
+ 0
+ ],
+ [
+ 0,
+ 1.057
+ ],
+ [
+ -1.057,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 1.057
+ ],
+ [
+ -1.057,
+ 0
+ ],
+ [
+ 0,
+ -1.057
+ ],
+ [
+ 1.057,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 1.914,
+ 0
+ ],
+ [
+ 0,
+ 1.914
+ ],
+ [
+ -1.914,
+ 0
+ ],
+ [
+ 0,
+ -1.914
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "fl",
+ "c": {
+ "a": 0,
+ "k": [
+ 1,
+ 1,
+ 1,
+ 1
+ ],
+ "ix": 4
+ },
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 5
+ },
+ "r": 1,
+ "bm": 0,
+ "nm": "Fill 1",
+ "mn": "ADBE Vector Graphic - Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 8.976,
+ 4.077
+ ],
+ "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": "Group 1",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ -3.466
+ ],
+ [
+ 3.465,
+ 0
+ ],
+ [
+ 0,
+ 3.466
+ ],
+ [
+ -3.467,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 3.466
+ ],
+ [
+ -3.467,
+ 0
+ ],
+ [
+ 0,
+ -3.466
+ ],
+ [
+ 3.465,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 6.277,
+ 0
+ ],
+ [
+ 0.001,
+ 6.276
+ ],
+ [
+ -6.277,
+ 0
+ ],
+ [
+ 0.001,
+ -6.276
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.024,
+ 0.745,
+ 0.847,
+ 0.6,
+ 0.447,
+ 0.863,
+ 0.702,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -14.188,
+ 6.687
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 5.688,
+ -2.25
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 6.527,
+ 6.526
+ ],
+ "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": "Group 2",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 2,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ },
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "o": [
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ],
+ [
+ 0,
+ 0
+ ]
+ ],
+ "v": [
+ [
+ 2.449,
+ 16.074
+ ],
+ [
+ -2.449,
+ 16.074
+ ],
+ [
+ -2.449,
+ -16.074
+ ],
+ [
+ 2.449,
+ -16.074
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.024,
+ 0.745,
+ 0.847,
+ 0.6,
+ 0.447,
+ 0.863,
+ 0.702,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ -9.25,
+ 1.75
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 5,
+ -1.25
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 6.527,
+ 24.743
+ ],
+ "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": "Group 3",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 3,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ },
+ {
+ "ddd": 0,
+ "ind": 15,
+ "ty": 4,
+ "nm": "Hand Left",
+ "parent": 5,
+ "sr": 1,
+ "ks": {
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 11
+ },
+ "r": {
+ "a": 1,
+ "k": [
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 0,
+ "s": [
+ 6
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 10,
+ "s": [
+ -12
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 20,
+ "s": [
+ 6
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 30,
+ "s": [
+ -12
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.298
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 40,
+ "s": [
+ 6
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 70,
+ "s": [
+ 6
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 80,
+ "s": [
+ -12
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 90,
+ "s": [
+ 6
+ ]
+ },
+ {
+ "i": {
+ "x": [
+ 0.667
+ ],
+ "y": [
+ 1
+ ]
+ },
+ "o": {
+ "x": [
+ 0.333
+ ],
+ "y": [
+ 0
+ ]
+ },
+ "t": 100,
+ "s": [
+ -12
+ ]
+ },
+ {
+ "t": 110,
+ "s": [
+ 6
+ ]
+ }
+ ],
+ "ix": 10
+ },
+ "p": {
+ "a": 0,
+ "k": [
+ 13.243,
+ 18,
+ 0
+ ],
+ "ix": 2,
+ "l": 2
+ },
+ "a": {
+ "a": 0,
+ "k": [
+ 55.282,
+ 25.376,
+ 0
+ ],
+ "ix": 1,
+ "l": 2
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 100,
+ 100,
+ 100
+ ],
+ "ix": 6,
+ "l": 2
+ }
+ },
+ "ao": 0,
+ "shapes": [
+ {
+ "ty": "gr",
+ "it": [
+ {
+ "ind": 0,
+ "ty": "sh",
+ "ix": 1,
+ "ks": {
+ "a": 0,
+ "k": {
+ "i": [
+ [
+ -3.471,
+ -0.95
+ ],
+ [
+ -4.102,
+ -6.171
+ ],
+ [
+ 0.481,
+ -4.647
+ ],
+ [
+ 1.298,
+ -1.257
+ ],
+ [
+ 12.426,
+ 10.213
+ ],
+ [
+ -1.464,
+ 4.243
+ ],
+ [
+ -1.337,
+ 0.598
+ ]
+ ],
+ "o": [
+ [
+ 23.017,
+ 6.305
+ ],
+ [
+ 0.471,
+ 0.708
+ ],
+ [
+ -0.385,
+ 3.702
+ ],
+ [
+ -7.885,
+ 7.633
+ ],
+ [
+ -2.709,
+ -2.227
+ ],
+ [
+ 0.6,
+ -1.739
+ ],
+ [
+ 5.912,
+ -2.645
+ ]
+ ],
+ "v": [
+ [
+ -7.327,
+ -16.213
+ ],
+ [
+ 25.229,
+ -5.503
+ ],
+ [
+ 27.624,
+ 3.471
+ ],
+ [
+ 23.88,
+ 11.286
+ ],
+ [
+ -18.128,
+ -0.632
+ ],
+ [
+ -26.642,
+ -13.075
+ ],
+ [
+ -22.842,
+ -16.275
+ ]
+ ],
+ "c": true
+ },
+ "ix": 2
+ },
+ "nm": "Path 1",
+ "mn": "ADBE Vector Shape - Group",
+ "hd": false
+ },
+ {
+ "ty": "gf",
+ "o": {
+ "a": 0,
+ "k": 100,
+ "ix": 10
+ },
+ "r": 1,
+ "bm": 0,
+ "g": {
+ "p": 3,
+ "k": {
+ "a": 0,
+ "k": [
+ 0,
+ 0.024,
+ 0.745,
+ 0.847,
+ 0.6,
+ 0.447,
+ 0.863,
+ 0.702,
+ 1,
+ 0.871,
+ 0.98,
+ 0.557,
+ 0,
+ 1,
+ 0.5,
+ 0.995,
+ 1,
+ 0.99
+ ],
+ "ix": 9
+ }
+ },
+ "s": {
+ "a": 0,
+ "k": [
+ 4.25,
+ -2.75
+ ],
+ "ix": 5
+ },
+ "e": {
+ "a": 0,
+ "k": [
+ 93.5,
+ 60
+ ],
+ "ix": 6
+ },
+ "t": 1,
+ "nm": "Gradient Fill 1",
+ "mn": "ADBE Vector Graphic - G-Fill",
+ "hd": false
+ },
+ {
+ "ty": "tr",
+ "p": {
+ "a": 0,
+ "k": [
+ 28.355,
+ 19.17
+ ],
+ "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": "Group 1",
+ "np": 2,
+ "cix": 2,
+ "bm": 0,
+ "ix": 1,
+ "mn": "ADBE Vector Group",
+ "hd": false
+ }
+ ],
+ "ip": 0,
+ "op": 301,
+ "st": 0,
+ "bm": 0
+ }
+ ],
+ "markers": []
+}
\ No newline at end of file
diff --git a/app/src/main/res/raw/lottie_row_quick_setting_style.json b/app/src/main/res/raw/lottie_row_quick_setting_style.json
new file mode 100644
index 000000000..cf7c5e271
--- /dev/null
+++ b/app/src/main/res/raw/lottie_row_quick_setting_style.json
@@ -0,0 +1 @@
+{"nm":"OneHandmode - QS_dark","ddd":0,"h":278,"w":366,"meta":{"g":"@lottiefiles/toolkit-js 0.33.2"},"layers":[{"ty":4,"nm":"Red circle indicator 5","sr":1,"st":145,"op":231,"ip":181,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[135,135,100],"t":181},{"s":[100,100,100],"t":191}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.437,"y":0},"i":{"x":0.486,"y":1},"s":[183,262,0],"t":191,"ti":[0,5.333,0],"to":[0,-5.333,0]},{"s":[183,230,0],"t":230}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 20533","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[20,20],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.7686,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"Red circle indicator 4","sr":1,"st":0,"op":94,"ip":36,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[135,135,100],"t":36},{"s":[100,100,100],"t":46}],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.357,"y":1},"s":[183,230,0],"t":52,"ti":[0,-5.333,0],"to":[0,5.333,0]},{"s":[183,262,0],"t":93}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Ellipse 20533","ix":1,"cix":2,"np":2,"it":[{"ty":"el","bm":0,"hd":false,"mn":"ADBE Vector Shape - Ellipse","nm":"Ellipse Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"s":{"a":0,"k":[20,20],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.7686,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":0,"nm":"notif-dark","sr":1,"st":0,"op":331,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[183,139,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[0,-25.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":63},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[100],"t":77},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[100],"t":215},{"s":[0],"t":230}],"ix":11}},"ef":[],"w":366,"h":278,"refId":"comp_0","tm":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[4.983],"t":299}],"ix":2},"ind":3,"parent":4},{"ty":4,"nm":"Rectangle 156","sr":1,"st":0,"op":331,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.2,"y":0},"i":{"x":0,"y":1},"s":[183,98.5,0],"t":63,"ti":[0,-11,0],"to":[0,11,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[183,164.5,0],"t":93,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[183,164.5,0],"t":203,"ti":[0,11,0],"to":[0,-11,0]},{"s":[183,98.5,0],"t":230}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":63},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[100],"t":77},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[100],"t":215},{"s":[0],"t":230}],"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 156","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":8,"ix":4},"s":{"a":0,"k":[96,137],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.7686,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"mask","sr":1,"st":0,"op":331,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"td":1,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[183,139,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Vector (Stroke)","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[5.809,0],[0,0],[0,5.726],[0,0],[-5.809,0],[0,0],[0,-5.726],[0,0]],"o":[[0,0],[-5.809,0],[0,0],[0,-5.726],[0,0],[5.809,0],[0,0],[0,5.726]],"v":[[40.022,110.5],[-40.022,110.5],[-50.5,100.096],[-50.5,-100.096],[-40.022,-110.5],[40.022,-110.5],[50.5,-100.096],[50.5,100.096]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.7686,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5},{"ty":0,"nm":"QS-dark","sr":1,"st":0,"op":331,"ip":0,"hd":false,"ddd":0,"bm":0,"tt":1,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[183,62,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.188,"y":1},"s":[183,47,0],"t":68,"ti":[0,-2.5,0],"to":[0,2.5,0]},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[183,62,0],"t":98,"ti":[0,0,0],"to":[0,0,0]},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[183,62,0],"t":203,"ti":[0,2.5,0],"to":[0,-2.5,0]},{"s":[183,47,0],"t":230}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[0],"t":68},{"o":{"x":0.167,"y":0},"i":{"x":0.667,"y":1},"s":[100],"t":82},{"o":{"x":0.333,"y":0},"i":{"x":0.667,"y":1},"s":[100],"t":215},{"s":[0],"t":230}],"ix":11}},"ef":[],"w":366,"h":278,"refId":"comp_1","tm":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[4.983],"t":299}],"ix":2},"ind":6},{"ty":4,"nm":"bg","sr":1,"st":0,"op":331,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"td":1,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[183,139,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Vector (Stroke)","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[5.809,0],[0,0],[0,5.726],[0,0],[-5.809,0],[0,0],[0,-5.726],[0,0]],"o":[[0,0],[-5.809,0],[0,0],[0,-5.726],[0,0],[5.809,0],[0,0],[0,5.726]],"v":[[40.022,110.5],[-40.022,110.5],[-50.5,100.096],[-50.5,-100.096],[-40.022,-110.5],[40.022,-110.5],[50.5,-100.096],[50.5,100.096]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.7686,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":7},{"ty":4,"nm":"bg2","sr":1,"st":0,"op":331,"ip":0,"hd":false,"ddd":0,"bm":0,"tt":2,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[183,139,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Vector (Stroke)","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 2","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[8.273,0],[0,0],[0,8.232],[0,0],[-8.273,0],[0,0],[0,-8.232],[0,0]],"o":[[0,0],[-8.273,0],[0,0],[0,-8.232],[0,0],[8.273,0],[0,0],[0,8.232]],"v":[[40.022,115],[-40.022,115],[-55,100.096],[-55,-100.096],[-40.022,-115],[40.022,-115],[55,-100.096],[55,100.096]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.251,0.7686,1],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":8}],"v":"5.12.2","fr":60,"op":331,"ip":0,"assets":[{"nm":"notif-dark","id":"comp_0","fr":60,"layers":[{"ty":4,"nm":"Rectangle 383","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[183,154.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 383","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,-1.105],[0,0],[1.105,0],[0,0],[0,1.105],[0,0],[-1.105,0],[0,0]],"o":[[0,0],[0,1.105],[0,0],[-1.105,0],[0,0],[0,-1.105],[0,0],[1.105,0]],"v":[[44,-15.5],[44,15.5],[42,17.5],[-42,17.5],[-44,15.5],[-44,-15.5],[-42,-17.5],[42,-17.5]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"Rectangle 382","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[183,190.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 382","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,-1.105],[0,0],[-3.314,0],[0,0],[0,3.314],[0,0],[1.105,0]],"o":[[-1.105,0],[0,0],[0,3.314],[0,0],[3.314,0],[0,0],[0,-1.105],[0,0]],"v":[[-42,-17.5],[-44,-15.5],[-44,11.5],[-38,17.5],[38,17.5],[44,11.5],[44,-15.5],[42,-17.5]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"Rectangle 371","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[183,118.5,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 371","ix":1,"cix":2,"np":2,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,-3.314],[0,0],[-1.105,0],[0,0],[0,1.105],[0,0],[3.314,0]],"o":[[-3.314,0],[0,0],[0,1.105],[0,0],[1.105,0],[0,0],[0,-3.314],[0,0]],"v":[[-38,-17.5],[-44,-11.5],[-44,15.5],[-42,17.5],[42,17.5],[44,15.5],[44,-11.5],[38,-17.5]]},"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3}]},{"nm":"QS-dark","id":"comp_1","fr":60,"layers":[{"ty":4,"nm":"Rectangle 381","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[206,44,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 381","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":36,"ix":4},"s":{"a":0,"k":[44,16],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":1},{"ty":4,"nm":"Rectangle 379","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[206,62,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 379","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":36,"ix":4},"s":{"a":0,"k":[44,16],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2},{"ty":4,"nm":"Rectangle 377","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[206,80,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 377","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":36,"ix":4},"s":{"a":0,"k":[44,16],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"Rectangle 380","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,44,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 380","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":36,"ix":4},"s":{"a":0,"k":[44,16],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":4},{"ty":4,"nm":"Rectangle 378","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,62,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 378","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":36,"ix":4},"s":{"a":0,"k":[44,16],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":5},{"ty":4,"nm":"Rectangle 376","sr":1,"st":0,"op":300,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[160,80,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"ef":[],"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Rectangle 376","ix":1,"cix":2,"np":2,"it":[{"ty":"rc","bm":0,"hd":false,"mn":"ADBE Vector Shape - Rect","nm":"Rectangle Path 1","d":1,"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":36,"ix":4},"s":{"a":0,"k":[44,16],"ix":2}},{"ty":"fl","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Fill","nm":"Fill 1","c":{"a":0,"k":[0.0039,0.3412,0.5686],"ix":4},"r":1,"o":{"a":0,"k":100,"ix":5}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":6}]}]}
\ No newline at end of file
diff --git a/app/src/main/res/raw/main.json b/app/src/main/res/raw/main.json
new file mode 100644
index 000000000..c4f4838fc
--- /dev/null
+++ b/app/src/main/res/raw/main.json
@@ -0,0 +1 @@
+{"v":"4.8.0","meta":{"g":"LottieFiles AE ","a":"","k":"","d":"","tc":""},"fr":29.9700012207031,"ip":26.0000010590017,"op":123.000005009893,"w":500,"h":500,"nm":"lottie","ddd":0,"assets":[{"id":"image_0","w":20,"h":20,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAz0lEQVQ4jbXVvW3DMBRF4fNUpXTpLhxB2cKlRvAoGUUjeASP4N6NUlmlNjgpCBuBLEuCxdySID+AP+8xmImagPRnaAD6iOjn1o2RnfqtDr5Opx7XYPUCNM5Z3ZXC7rk8oWp6E3ugY/C0AbvnCBDqHritvrXX+YmIVAGHAhjAp7qvgK9CIECqCmIAH6VB/gW8FvT6CrgsTlufDgBzsW9N+2DVZiM2OFHP7QawmTyAN9DBpb5o3v6aMz2r9Xh9zMFAQ/4CanL778ivoo2IydfxC0NFcaDt/mmhAAAAAElFTkSuQmCC","e":1},{"id":"image_1","w":47,"h":19,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAATCAYAAAAAn1R6AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABQUlEQVRIidWXwXGDMBBF/958MyW4g1ACJTgdxB2kBEpICZSQEnAHKoF0oEMOPmTm5SBwPB4CAmlC/C8MsBq9XaG/wpRZQDHx+mJml1xzWcpg4CiplFT1133k0LOkTlIrqTWzLoUjWsAL8E5eOeB1ZtVWAxdADfjM0GNqgMOjQedLAqiAbgPoW3mgXlrtt42h7+WYWwXg0Af+R3mCu11lN+ClgnXF2t1WOplZI/XwDwQ+6GRmjRG+Jad84B8KDUiSvKTBuwtJT5nmkKRnESwpRR1hg1dENBmgJDSk1L3lxHo7bIEqpXQEg1hdPK0Y41Khf0li8ZFDLFu+Oif0SBJH4ru5F6H9zwaSudoTCRSRBW1igj3BSv9MPVM7weQYzGEiuCXHCW99EmOHwmYAt7vgnaRdf5v1rydF/Fjwp5l9Dc+/AQO/83MQ6x1oAAAAAElFTkSuQmCC","e":1},{"id":"image_2","w":75,"h":24,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAAAYCAYAAACyVACzAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAB9UlEQVRYhd2YMXLaQBSG/+faBSWpQpHeyglCSReKHIAjULokN3BuoCPgLuUeQdR2QbqUyoz7L8WTPTYjZAl2WSXfzA4MsOzbT7tPT2vKADCVNJVUNB9NJX3o6PIk6aF5/yjpycyqdBG2Y6kHACaS5k0rJH2J+Pc7SVXTQmqBSWQBhaSVXNBNijGO8EtSkLQ1s+0Fxx0GMAPWwJ5xUAMlfuHGATBvghozFbDKLSlkljCUPZeUBhT8e5IOSSsNmAB3mScZm0DsnAYs8YT5v7Lp46GzdMBrpFLS1/OVj56dpFVXrXZUFr48t5I+JghM8uD28oKybl6PMTtoMQvb1/yRtDazsncPYJVgqQdgA8xjzAq/0ayBLfFTRD9ZxE3iARc/iSHonbiXeL0XS1zojJs4xWWNC5+lFnRkDhP8AsV4kqhoE8b5omp8myVfRX0hjrS3wiKIGpWkQxpp52zPCrh+TpSnEsi03YbC+UX1NwG3J3Ze5xZwCvgz7Slb88eVuk8o29hJ+mxmdwnmkhwzC/JDyPuhfa/kR7Z9uZc0z3GkGxMzq81sKen7oI7AoucyLJNEnhn6F+ALAdc99nCZe1Ip4f2Dgur1jwv89tjGJt80LkfjoG3RvFTydtBhIemTPOk/SPppZr8vH3o+8AOEQp7LKzN7fP7uL9c9s3cnCfNfAAAAAElFTkSuQmCC","e":1},{"id":"image_3","w":8,"h":8,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAyUlEQVQYlUWPsWrCYBhFzxf/SQOmaguK0Ew2oA+RLC5d+gg+Qt/DIY/gI9i5IK4dA4qDUwIdFKNE0SI0+DkY2wOXy7nbFQrUDx3Kvy4/1TNxJ5Y4OAMYAH0dvtNbhDR2sH2AymGvp09fNv3IUm/s0lqHdJfgf0F3Ce1VlUb2AWBB7qICF4G8BCpFeNbHqW1IHfhuwvwFVk+wLTytgYAhNxEzD44VsE+3jtugkkgaHAVA65MBMOKfBMt6k00Qyd9NpgYHG0CyILvvVxaeQ/RtQvlMAAAAAElFTkSuQmCC","e":1},{"id":"image_4","w":18,"h":17,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAARCAYAAADQWvz5AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAACSElEQVQ4jX2TPW8TQRCGn90735d9thUTPipSQE3SRyJWkKAjtKmSgiYUpKHnF6D8g6Si9g+IFCLSJxKiowgSEiKOFX+efT7fLcVcHDsKjDS61e7MM7PvzinuMPN+ZxUnW8XwiMSCQRG6QZ9O+Su/3BP1/V3/do49B9jZXabSaxC2HuMkoIC4AP0hOGXQQLrQMfrzlvq22ZjNVVPI2w9b3L/cp9aGShe8WA5GLnTK0KpCswYXNfizCL9r2+r8zcFcR2bz4zKliz3CgUDuXUFpIBH9onzHBYh88IvgjcBP9k3tsK1aLxogzYI92cNJKrgxFCOBPbgUr3Rlz4vBScTtFKwUFAemelQF0Oblpyeo7DnKgL72DJyxuM5kT+UOs+sKVrYhHSX2KhMLJra0P3JhEIgelwuyjh05m9gwsSC1INVgFGA2RKOxu0LsQuRBPwAvlGqRL9UjH9plAUYexK6Ak0L+SmpJQANfAH5J7q+NBDnjXGQHekWB9UoSG/k3hRTPBNQr9vFjEVAZaX0QzIMiD7qhwLqhgEfu9csfC6hTOqWQAkbuPnQhGAkYBBx5Mt3tEK4q0AlnR/E8nyPnhFZVxLuu7o7nQbEjXXZLAkmt2f/hy3SyTe2wAeo1wRCCoYCsHJTmoFldbuynaq0vTSeb1NrFytaI/AqRL4LPgjJ1GyCm9cZ0CaDa9XO0XgM6gCQmtvi/ILCtmvWzORCAatbPSPUy+Sv8x47RekW11g9mN+8sZxaPHpJlr0A9hayUh56i9Ylq1n/clfMXiRXp4M2EppEAAAAASUVORK5CYII=","e":1},{"id":"image_5","w":134,"h":97,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_6","w":200,"h":104,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_7","w":232,"h":120,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_8","w":16,"h":22,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAWCAYAAADJqhx8AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABL0lEQVQ4jaXRMU/CQBQH8PeudxQGYwgakw6a4NBBP4R8A4NCCINfzkHtYIJhly/B0AETHUhkgcTEAr17z+kShJa29D/ey/9373IAZcKMeEivP+Q6aX1NBmQhoBNwTanYZ8ZTe5YLuHlnebZYXQh2mtuzTKA3YI+09h0EmTRPBfpDrptV7AvEo30X7ACdgGtSrJsghJe13T/AvpPJOU9bNxXoDdgD1pdIUM1btJEPr9yIjb4qWrQRkbM6ObQMACDKlEsDhkGXAlyU49zftRkmnhtS46cuRoUAFrBUJMPHe5zZs1yAYdAozNfLbXWyPcsGiKazRiUctZROGqcCTDz/VSp8a+PPPn8HYAFLQDl5buM0c7tNwL7z+9j9HLUwcd1EQIK7AFpLpspHcKeivEWbP2jacWocQxNGAAAAAElFTkSuQmCC","e":1},{"id":"image_9","w":17,"h":22,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAWCAYAAAAmaHdCAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABPklEQVQ4jbWTPU7DQBCF3yx2LCw6UiFRpQBKcgeXVlBAWFtbymG4QYrUiQUhWO7IHZDoSIVEQ5O0SYi9OxQUWDH+S8QrZ+d982a1S9hD3mTduni13mkn83jTJiJJoGNodWfUMcuImxwnPoHO0vVKEDdi+yhRHcTKIWTDl0LkY+zoRF2BcZjXkwuRD1/nEEICdCq4eFAGIiNuYhNLkLgsS5mBuBHbdqwcxKoDElX9vxBvvGkjUb5A/t5FEr0+mxDCFwUXVwr5PIG5DwAA6i3/bxCrMa/17LelgTBwaTcIg2dkGoPApTlQ8e+kzAvSejC6sd7S9UoQTVgJ5qdR15z+dV4OIUyXxkEYubTMa8mFMHimEmN4f0sfZXMyEAYvmHkYXDdeSlNuQzRhBcZz0DXDqubUaCZvsm71+mzWN//oGy5DbIfhvdCaAAAAAElFTkSuQmCC","e":1},{"id":"image_10","w":16,"h":21,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAVCAYAAABPPm7SAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABN0lEQVQ4jaXTv0vDQBTA8ffeXWmLCM3QVjOoNEOHDi4ZKljoX6BTbQwI/nlSgyGQvX+Do6uDuCiKSPPjkudQTm2xtkm/2x3HB97BQ8efHRGIRppWHm4vcAYFo4ywyoxNKdXp2I+s4ZRlIWDhwKLTelUDJ2CzFAAAIBAkZqrneInthmwUBnRIaHCi7Esv7o0mXC8M/LwgE4Xqr/qf9QDMxyIWnb13dXJ1x63CgA5zqClQx46X2GcB7xYGviFCYydT/WufG6UA3SfF7a0AgJIjLAACqh9bATfn+CRB3jNBVAbA34exH1mciwOBsNFCKZE94vLlcMpy/yXpAtHahfoT0LkhG3mUWki4cqH+BXROwCawsjCHWikAYD5W+y0+XP6fjQHdaML1SiXtMmOzFKBzQzayOO0iZc9fAG94oKTBWSMAAAAASUVORK5CYII=","e":1},{"id":"image_11","w":17,"h":22,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAWCAYAAAAmaHdCAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABRUlEQVQ4jaXQsU/CQBgF8PfdtSLohqusXVzU0RkTTQgGQXL/g4y6iiuOujo3koAhJJro7GhYYTZx0s2YSO/uc6ICItL2jXfN714fAGDvjlNIECp0ObMamCsGD8h1rv0CvUVFRKiBPASmoW61KnQ5EwsJw8hntLk4agU7iyLh78y+5hdY6/vlVD9ak8k31iHkqWoNa6rLazGRkSU2EZhGta2Ls/ZaDPn5uLgS6PPpvf7Z5O8weEDWdvxyqh+pycTrIM9KWavXWcRGAEAw0s/bWE6EhJiWMImR+336AtteIgQA/MOlS1jTYPB7HISmD1Q7yFuiA8FILwJ8uPL417B+yX38dOQJk32K3WQ8lSbnpKMVgbx5TeYio1Rbwy0iUgTKxkZCrK2LIOyO7zVzk3m5KTkd4ciz6b0iNRlPpck5V5iN16x8+AZnfHkHHPRVngAAAABJRU5ErkJggg==","e":1},{"id":"image_12","w":16,"h":22,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAWCAYAAADJqhx8AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABKklEQVQ4jc2RMUvDUBDH7y7vhXboEKQIWYR2yFdwjLuDVCulX08QjVOle/waGeLQIUMHK4o1MS93XVQaSJs0OPgf7/j97u49hBbxQ1H9t2xIhhw8FJ7MxGVjPAtBAQA0Fkzn4hRZ7hFib7teKxgH0tU690SwX9XfKfBDUcev2QmJNdg3oFIwmYkLYobI0KnbsCSYzsXhNB8ioVMHlgTjQLqKvgZA5DYFf6L8UBS+mFNAUofCAADK/YCefP9pm1Bb8J8ImJNWtxcCRgoVP1zj4nABc7I8sqOnMzQA0Pz1hWW11jp6HOH7dr1WIASpZhXdXOGyqr9TUAgYpGJxf9GJ9w2oFjAnwvZzcKk/6zYsCYRlRR0d357jqg78FeRrYMuGFFDFdyNMmoJ/lg3A8mlYYuoNygAAAABJRU5ErkJggg==","e":1},{"id":"image_13","w":16,"h":22,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAWCAYAAADJqhx8AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABNUlEQVQ4jaWTPU8CQRCG31nugl5MLKSlltba+soLhhCStSWx84/wDyyoTyMayVlJ7S+wkdhhZ7Q9gvsxNh4iH8ce95Yz+zyZ2WSAHXNxxT4AUFEwSjg40KYJRghrel4RWN6r0GpzBsZ+VnMSyMGswUJ0AToS/L+XK5AJ11jpLkDHm3ZdK4gSDgJlQijTpC3ftCLo3KlT0uZc4G9PJ4EczBoQQgJUB+chSwKZcA3fSoLEiTu2OIHSlyBR3wUGAAHQzvCvoFxKCWyFVQkBvx9+VCeFbgEALGEqmB/ilj8CHG9hHsIo9SrDJKI0KzkJGDwm3+vHEX0u93IFDP4ia/vX7errpjdrBZYwBePppuUPt023ImCyz6nnx4t7OgkYPDbai2873sQFnAss8Fix+iVu770VAbP8AGilaR9a6WGJAAAAAElFTkSuQmCC","e":1},{"id":"image_14","w":129,"h":85,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_15","w":149,"h":95,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_16","w":30,"h":37,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAlCAYAAABVjVnMAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAACsUlEQVRYhcXXvW7aUBTA8f8xGLGFN4jfoHRMh8bZU4UO7RoyRZ3CI5A3oFOHDIG5A0hRW1WqFPoG6RuQJyhsETb3dCgh/rjGBpz2SBa+fNwf53Lse4D/FLLNh+q36i0q+CJ46uDHZnuacaLQDw9kvDPs3moboYPwIgY9zmIbK4OgToeXMt0Yrv3Qlgo9hP1CWHIMs4rSfDiQyeOcTi76XbuqDFH2UYgdFBwDD3ViGVfXoe437SucriaxhUSQrLGhW3ip3a/aQ7iILd26g8zxz+CV+Lbvm4rqjfoi3OIURLPxWRDgcRTPFjKWWpQuAIYCVZBII7LMorRtqBV2h9pEOVw9sS0ufJy/llHW21KwQEuTxbQ5PgjC5aoVhdXQsiJpfAaMBCbo39dUmeIwDny5y/9u0Rhqw13wG1kitgJyQITLeZ1e1u9XJGIZ1+b4+phV1vIaZvNj6W4LWmEMTYiAdjyzYLaGVfHQBJjGc3+/IhGfUvEwsMI1fa6LZ4A1idrwkiKZMZqEkvhzwKJMMOtxx0Q6jrJgNcubwRrc6LLyy4SBcRSy4aKcMNRGqXB4JuMkZMNrIZ1SYQAxDPJwNXR2zToFq9JPFVUa33Pnu93B7B3IlY4QTlYbReRRJPbcQB364TsZVz+rH70PSgUPh4Yqd+GbdG9theuf1Aur3CHsFcDjO5l9VxsEx9KOGtbt/eGDTNTQtl7LOdd57PzpOK3daCsXBlicywjDZVm4Qi9akGsbmvBcurYq3xLfd6tP7VBuJxXU6GD4VRJ+4X7RZiGYM5mGNfzS8AU92OTf4rU2qnNGOBxaK3qDaleHo+JN65lMw3PxRTkT5X6HzGeEW/4xB6heqY/QwcFPXu8Zmd8j9AKHPm9lujUcDfdamwY8cZZbZoWmCA2BsVaWvfb7/F77n8QfbFamU94uFyoAAAAASUVORK5CYII=","e":1},{"id":"image_17","w":109,"h":65,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_18","w":97,"h":56,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGEAAAA4CAYAAADth5acAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAEd0lEQVR4nO2cS28bZRSGnzNxAxFVOyxArYSEA7QCQVt3BxISZoPEBrJgz/wDZoXYMd0hVtNfgPMDEC0LFmwaSyzYOWlVZUGl2FKlIoQUT6hoyGVeFnGq1HVdX+biyzw72/L3fXNe6ZzznXNsY8qQ9CFQAS70+LgB/GZm97I91ZwgyZfU1mCsSarmfeaZQVJVUnNA43dzQ1I572eYWiSVO0ZMgkCSm/czTQ2S3I7RkqYtycv7+SYeSZ4G9/ujUsSLXujI76+lbPxuairixWPXU8vY+Cdpa57jRefh03Y9g9KUtJK3TTJD0opGTznTZk1SJW8bpYaOUs6s/f6o1DRLLkpHfj/M2aij0JYUZGEjS3PxA8kzCIGzae6TMq0YvFNma2ltkIoI+1JVIgSupLF+TtQPDW/JrJn0womK8EgqxzGBwZdJrjthXP/PIXjZrJ3UgomIsC25TowP+Ey36xmUCAjOLliYxGJji/D3gVY48vuvj3+c6cKMjTjGf+XUePFiZBHu76myYITAR+McYBYQ3LQD/PNLo8WLoUXYklxnnwD4apQNZxpxLV4kXB4yXgwlwh+78gUB8+H3R0LQMhFcXLLaoN8ZSIQ7j1R1oMYc+v0xqMcQXFp6frzoK0LjkcqdfP/zpE42d4hVcwiu9okXPUW4tS33xUV84Nu0zjZnRED4wUsW9PrwKRFu7cgDAqxwPYkjWoD/8Rm7cfLtxyL8+lAVxYQqUs7UMaibg//JaVvvvIafd+RJ/JDv0eaOyAz/szNWs5+25e5BkyLtzIPo3zbnSm0oOyoEyImzuLxd2jtkN92uQkFfYnZLi//Q3DlNpMIdZY5BdOYhTQP4/i9VBGsUQmRJZFD9+lVbf+yIgm257BGimW7ITAbGKjFBcP7oFv1UNPjmgaqIoLgvpMKGGf5355+sJz0zJPv35WEEKop242NEFuOHr/WurPbNi7wtuYslfBU1pHG4vn9AUFt+do9hoOTU21J5f4HQimrqMNRLh3i15ed324a6IXyxpaps5kZZkqaF8H9cfrJI14+RrmmfbslHRYeti8hE+MubvcvV/Rj5rlzdksth0WvusMoC/lofv9+PsQsW72+qHJeo2RymtIK6A8HvF3IaeenmvU1VHYfanKS0EYZ/5+Lgzfx+JF66e2NTAbM9iXct3iVsXp2wMchuyg25ey8QarZmUusyvD/fmfCB4G7cu6oIQjTV8aJlwmtfmrLR+G4WbmvFEaGma3ggMhHsX0lm6Lcf2bVzGnJxpmZye5UYnwT9fj+y76k1VMYhYDLjRb1j/PUsN82vsdlQFSPEJqIE0sIIuJxMyjks+XeXb8tDuf2uLQJCYsKsXE8v8hcBTsaLLEvmNzuup5nhnj2ZDBGOOYoX6Q4giw2Ez9X0Us5hmSwRjmmoipP4KH4EBGSQcg7LZIpwzIZ8kvlRynVigjz9fj8mWwQ4jhcBo5XMc0k5h2XyRThmuHjRwvC5PHh3K0+mR4Rj7uocB1Qw3kIn/pZTPMC4R4l13p2uv+T8HxK0fB4xW5yBAAAAAElFTkSuQmCC","e":1},{"id":"image_19","w":167,"h":113,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_20","w":31,"h":16,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAQCAYAAADu+KTsAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAACBUlEQVQ4jbWVsU5UQRSGvxl3771777LIZsGCGC0wWKA2BkvewAfYnhcgPIWh4QEIlcbQGCu3w8og3UKoILFxLdRQ2KwJzPkt9t51xRtkZfmak8w9M//5Z+bOcfyDbvdkbmoqu59l1fk0rc2laTLnvW+VpPaAfh57wGfnXO+ytStlg53Oh2a9nj5JkuRhterr3isyXCy5yMxi733ZtPk8LhQDkk6BQ+C9c+70UvHt7d3bMzM8BX83BCIIVQAzA0NgALrMzQWawAqwImkfeDdaxFB8a+vtYhSdPTYXR2MsPg7LwCNJb5xzHwE8wObm66UAi5IkFc4CARQCAi8wzJDG8f03NaAt6RmA39h41ZJ38/66y45HW1LDh2ALfwyHgAaFiACAQu4aEEysyGVvdpZ4SeeAcoBc90ZplP4zIwxueChcD3dgIvjg+Wlm8ma/XYcgabAR4ebuwjef3IpPrpo9Qdd9oOvX19vfzfhSnLEkyUvDQzeAIMMEkplNQvylc+6HB1hbax9VXOXoihOv4/4UeOGcO4T8kQFYXX3+qd8/70ju68C1FEIQxUNjYPbfun2gkwsPm40ry9zZ2a3PzjaWoih6kGVJK0miKMuSuFaLozQdxCuKngD7wIFzrn/xY6n4KHt7x43p6eRevV5pxnFtIcuSaprGdxg0jYKinRYt9RjolQmO8gu3JPVL/ZBp6wAAAABJRU5ErkJggg==","e":1},{"id":"image_21","w":31,"h":179,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAACzCAYAAABxcMesAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADFklEQVR4nO2aTY4UVxCEIzKjuqZpNcZYyNIsETvL3nAKH4CV95yDO/gw4zNYYmPEji2WLQQIMUxXt6tesqAZL2wkZAEhzHtSLXrR/VVE5sv3kw300UcfffxfB4+PY5SAeyb4PfD27buDA33//umiaXpuUn4KXb2KdKDv3Hm46HD42qT8ObTdKhzoJ0++o3a7tMDn+XdqvfbAX74ENM97S8xv3jylxjEsygFAq5UHfn7+lFqW0WJ75h6SaFF+cfENbfAbN15QEnwJl+lRPk1fUZlrn/IIj+3Xrp1Tw5CWqdbatxDpUT5tX9Fm+3ZaU5LH9nkGVENYtlGbcUfl4lGOuA6b7fv9BcVVeYrMBtAAT7bnfqRIz+4VaFBmWGK+LA3C4FHOK+vQAE/CXQGgCI/tAHy27zVQAzwnljxMVARN6zmgTE/CnZxsoYiVRfnhMFGSR3mEqErTQbE1aGWa520QlSblrTWI9Ew1bDYQTMqHw56SSflf2ECZnvJaNVERHtslURGeK+92AoiUBa7DTGWm5cQyDyuI8mR7OqdartdQhOdOBoCvvGYGFfJsIDOCStfCAkA0HZGxNEj0JFwL0pjtQSFNMW/lsz3eLCyehIsYqUxTtgNQpmc9ryJt5bUKvj0cUD7lGAvKNN3DARDgyXYSvtbWsowQXK3UAVCaymuRFOA5n5+waGvqAQWZjmqoahBMf08iSVt5XVK+VS1hvHWuAm0xB4xL6pzps32E23bXnQxA2mxvDRDpga9WDbY2BwCf7VXpW1gAY3ldlvJNtUxrzJcvNOatJeXatmcCtq3zcffquhwABLjKa8F0236p3BVzY4NHMv076PIFjHyf7YDZ9g7v8A7v8A7v8A7v8A7v8A7v8A7v8A7v8A7v8A7v8A7v8A7v8A7v8A7/DOC/mth/BIAzALtPDH5M8s8g+QzAz5/wBR4feX93kKvqOoCfANz6iOBfSJ69/fCP9nVV3QLw4wd8iR2ABwDOji5fjnf2zo9O/ADg+//wIs8APDo+v5H815C+d+O+qhJvZke+43vt+Mwk631+8zX48KsBySkwEQAAAABJRU5ErkJggg==","e":1},{"id":"image_22","w":223,"h":129,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_23","w":156,"h":99,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_24","w":42,"h":25,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAZCAYAAABHLbxYAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADbElEQVRYhcWWQXIbRRSGv9eaVsQqs2RncYIMK8pFwOMFC2AjLymKQpwg4gbKCZicIEqFsKMkm6JUcWI0TpFsGU6AlizloqBcHml+FhoZxx5bNrGVf9n9uvvr16//brik/FBtP1SvMVTzsmOuU7YswO+ojaOLYw3jAAMzkqM6CZs2WQUkgKts7Sv0fXX8QGPgIZDWjPfyTy00kQg6PierP1drVaCVqv+oru9LfiD5HbVP9zeGavqn6vldye8p9SNFbwFzLt9X5PtK/bbkf1JCX+HpmOCZYv9cCaOzfdeu4HsN/BOJh9WL+b46flvyO8qqYFclJ9GTwN8iqQrItyyh4Fvgjg+qYxbyI0XBSPFNlEIw+8oGwWM9oOCe/0HNmtE+/MLGJ4MMQokzHtEYqjkzWjjaGHeYgbl5nE+FjG0cyfQjS98U9Hjp4LFic/RwrAH75khxIEcbxxqO/bygxZZN6Cv0t+hi3CstayBHb/rJf0D1kVpydIANg/tHG9a9FtCF/BNF5mgVNSIMHGRFQDrdmkP4nxVRMCh99UH+Dt2L/NTvKwU2CHg//9Cy/wsanG7Iv7QMqJ6wr5ApKY7bwDf5Z9ZbukJBhmNDBW90EasN/xx5aCNuW8H9/PPlkOWlaiMOptNzNn9JncnohSqgrNvxslC/pw6iiwEiXpRHY6TmzNMyEeKgcKTT9eWX7UoZzR094HcKkqoXi5FCv6u239UY8R0iq0GUb85rs76v7qzGHxREiKwoSE20/StN/MuLLW3pp+SM+go9JDi+xnEAZJSWhGMDA1Ha0usu0JWjQ0G8AF/Iv9LYjN7R+vnOcHXQE8ABRC4gBjg+xgZZlQv4kXoYUR7bceb8S0USXTPimiM6XH/dv68H9KoaKfQwwIgwMowmxhrGo1qNbiXkbwr5mxl37a/VgZZqjNScQtPVeLcw/nQixIhwICMuU7fYxD4wzj+w9o2ANoYljCOEEsKVEPOMUmYVM1IAamTFjIk5JlUPw9Xs6ZI6dPwTiA6Lh8PIVJAGAePDzfkR+xdqI2JBjJHZFKaz6vqeT7FilY/AAGOCI5HNPdls/jPL79rb+4SflN/TxP+i3un2+gu1/K/SeeNu5Ogv1BzluAYbIzVnNVpydCl4dN6wlR998EyxOZLSniaL221GcvSxDVbNc+36F6zFcxQE8UUVAAAAAElFTkSuQmCC","e":1},{"id":"image_25","w":93,"h":43,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF0AAAArCAYAAAAaCoQfAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAI50lEQVRoge1bbYhcVxl+3nPnTlYQdhCENRb2+vEjQiCLIKQi5gbS0kpjJmIg1Za9C/kRQ2xOlWJEMSf4UdE2uYtRQxrcu6IltEo2Rtu0jWamARMrZTfFQFHBmV/+zdg2Mztzznn9cffuzp17kybZ2WQn5IFhFuae8577nPe+H889C6wQeHbE4zc+OrZS8w8yRL8n5NkRj2fXzsA6/wGJWf7baIUveH6/7QwyqN8T8qWPVGBpEywBViD+JoDFNOZZ0eZard82Bw1993Ta8F8foAkAjdQPjHG4Yo6rn1T9tjloWJan8xveCCw8NDFHm2ut1G+zXgnaSlgcyHi9pTqMkLTlnzPLW/5g4pZI58sf/iDmi0dgxDi0AIzTQMeRtPlfUebaC54HtiHY2dZFerIJVXBB0oOX55Z9JwOEWyP9rZEA2pmCEYAWgHYAIwDjVNEmRQ+/XcmMOe/5gIhgaTTH86fRWiNp+9yV5d7QIOCWwwvP3udDk4IWmxZJTzbAimnMu4q2z9Uy417/uIQRClYM93h+AwxFj1wOl3VHA4D3JZ1nRzxoN4KhK2Ah6f509cEXvABaKBgxmvJ6LRrQTgiBsNeD+ZxXgnUVrNjXE24AI+pgEdD2uUpf73QV4Zqk8zkU8KG134WhA3HoWCDSOCGsDmlz7crStV4JKEgYcSDj9UbUoUnSV97MJE1+eZ0HgSguMVPhBrCiijYCejT7tAw6boR0CSOGF4mMY3cdWih68O0oPWadh3kKYcS2Hq8HtKjCFCRN/DWTNPmlT5XBIlyK992eT5NoWkUTd0+8T5HO57yhbOk34kG7S0Saro8VVbQdRVv/UUmNOb3eh6UQ2tmQ8vp4/DTedSU9WcmQyKfXK1iSsDTc4/kNWCHpq3+PVoKE2w0CAJ71PLxHCi13HC33FN5xZe9jzRc8H4ZCGLEhRXxM/jS0k6k++PdjAYwIocVwF+mAdhowQtHeSiZp8smxEmBDWDGeU2JeghaSJi5WVpKUlQbxW2vXoSMuoukOo+UCzSLQcoGraw7CDoU0kfZIfv0TAbQIF0PO0qcBTSHtmFOp60+OldB0FHRhXxfpScipQ4uAnjpb6V0Ynxwbg6YwV1Kw4hTAkiYu1laSnJVC7Olv3qfQdCVa7vAi6fF3A62CpCcqUfcgPueVoIdkKskaARiKibTZxMlTGz0wRTALJWb3BnSoCoiAvn2m1rtAfuHTAQwpWJGN91YcRKGQcYzVjsWYzhc8D+8VFZrF8ZTHN12g5VbRLCpSf6x0D+aX13mwTkxkQvrSJlShs4mTn/ucD00RtDOa8vr470lwQZGaST9dU2MlFIsSFnnxvg5Lir52PlpJovqJTPXCp9f7aLkKzeKmJdKLCfnTaK1RFJ6oZcZoJ4Kh0Zx4PwkqqkyYOuLHTVLHGe4JOw0YIelHM1FmbVMbPQgoWMqJ96jCCkVfr1T6zFHfce2S8dcbA7QKCk13tIt0oFlsYN4N0SqEFEW9iVMuNErpeK9FA4YU7TmfSpx82C/BuCG0GM96vbgEKyQ987tKZm1TG31YEcLShlxJwXJudbRacN2OlKf8Ev4nJFrugS7Sk+86WgVJLxxLx+4kcRpnXxfpyQbUoQsBPZlOnPyTB8bQKYTQzqYu0hNJ4RRaJOlo+ukCAD722SCu73MkBUshffOs6gNHfccNaS/89EMe5p0QreK2nkQLNN0q2u4ueuXwv1NjfvuZMbSdEFZsytT3RpxCuyB7EyerrWUYEcJQr6QAGOdg7tM15ZfQshKWDmQTLcVJ/VuvrioJ+aYEL95f9tFaE6Lpbugi/RJahYBeC3PlWT5+fxnGCWFENt4bcRDzQ2F34mRVLqENCS0ktDOc8noj4k44iqKMnV/6HvR1JAUrJH3npVUhId+atLv78QBXXYVmUdGLR6MbGvPzzytYITPx3ogGrCPpe6dT8/D+sodOQUE741lJoVCFhqITxysZO4d9H3C6JOSU50/CFDPV0e1G39+RXg982PcAUrDOeI7Xx4nzBzOV1Bi5M5aQO86mjH7fcaahoWjmaC1j69ktEpZUtsR0YglZnb5jEvJtJT0B/3SLDxZqqb5PNVjTACv68UwtNWb34wE0LUkKSxvQgBEh/eGIytg57Jcwv0aBKSshW1EHU9C7ybcDd4T0BPz0QwHMghbf3dWaREJuhxR2xfsgKAGQ0M6BjNfHkoKkV8OshPzDL4wBHF4z3jMHvZu8krijpAMLiZN0rMV3d7U6KTEdRb94PkqNCQIPrUT57NHvNU3QXw5Fuba+/3AZ1smXkFkcRFunNnmlcMdJT8Cq7KGDEIa29dT28btXU5D0XJSWFL68e0H5dDZAizo6BUWv5ROetvVFBZMrKTTAJOnQi+87x3KwakhPwPvLPrSTLyFrZxoMmanVt+5dh3ferVElal1r3owdVS6hgzBXUmC6BE2Sjpyo9P0GsQpJT8Df2LGkxfeWmMYJ6TfHVV/s7C/7gFAweRIyTsEgtxteDlYt6QDAslxC+wPxC+xsiVkHOwGdOFrpi62nvhTAih4JOTmlQLla061iVZOegHfv9GDcLgk5JaZVYTnIq9Vv2o4slyCK8XuCPEnBOIp+le2GbxYDQXoC3hX4aFMEmyMpaGcSBaFoJly2N7Lc6cEghKVtPW+sFk6lQVIU3bKkMFCkJ+DHdqnUKYVuCdk6il451Jduk/fu9ON+IUdCNphGgTNJ/UYwkKQDC43S1aEQhsa7SF+UFOjPz/btHxJ49+MBDIVxidkb70VIzx9TNzPfwJKegHfsGUNHhDCUSMhVtDmgSljrq50gKMGBgkWOpEB1MDLvFq6FgSc9AW/duw6dQovO9JfsjJ0g8ACK4hKzR1IwN5bU7xrSbzf4sV0+GPkSMmMSKF4zqd8jfZngR3fJuL7PO5VGiv70s0xSv0d6H8DloITCUAjOO6Ug6mAEdCasJNffI72P4B17xqCRfyqNxSm0raRKWLtH+gqAy3vLcXOVcyrNuB+7R/oKgh95Im7i4nh/CSwknX2mcqfXddeDy7LED8hUo/Z/a6BRewlUc8MAAAAASUVORK5CYII=","e":1},{"id":"image_26","w":478,"h":301,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_27","w":46,"h":30,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_28","w":4,"h":6,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAGCAYAAADkOT91AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAATElEQVQImWNgQAOMDAwMDKzH/ycwMDDMZ2BgSGRmOf7fgfE/w3qoAkEmpn8MDkg6HjAhab74+ydDASPDmf9cLD8YjP78ZrjC4Mj4AQC77BNV0psxDwAAAABJRU5ErkJggg==","e":1},{"id":"image_29","w":11,"h":15,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAPCAYAAAAyPTUwAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAA/0lEQVQokZWRwVGDYBSEv/cPP3qkAy0Bj8ZD/hJSAiVQQkqgA2MHdACOg1yxA0qIN0cmrAc0QaKH7O3t7Nu3bxYugC2J61a3B5Hj2AA3GM9DzIY727u50DdKD9BhpCZ2iCfE2n9QAERzIY4asR1WVhz5VgDhZFkp8a16/6p8GStqFXwrATiAOCZH9HPHBd6mGJUSGTmanzrBQRB0AC6+ImD0w4N1f4klMqCeFkXKOA1L+FYZwHBvOwAnCAb7M2WlBFEYHJ92GL1Y5K2U+JgaKD9XVv7QEaIGHuNG23Gktqm5DKMcVpbNPQzAN6oR6+/y37HfxZw/0yiNXhT+FVyKL9PVYRgymrBpAAAAAElFTkSuQmCC","e":1},{"id":"image_30","w":118,"h":29,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHYAAAAdCAYAAAB/lJiIAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAE+0lEQVRoge2awXLb5hHHf0tiER7xCNAb0NdMG4PTcVMnTkeaTg45mX0C8w0KvwH7BOG9k0KyJDMSaYOO4+mVb2D6DXDoQRZI/nuQ7Cq2EocUKSKOflcAH3b2j/12v10YN3xU+Au1Df5b27QhN6yG4LkSf6ER0MWYVlLYRl+xD9TZtB2/BRr/Uew/qmdGjpjUazRPP7XdYNOG/YRcUXhKZ2Z0gDHQ3bRJVSZ8rnQ2owNMJFrTP9qoPL9WGWHDI22rpCsDoIdobtikyhL+oG0ZXRkRczrlZ9Z7956Nb8V+rKYfaSTITPRKpyljd9N2VRF/oaY/10hGZtArS+LLRIVNRmyuyE/oIu4L9oI5Wyd3bQJAX1DfmGXVI1fkASkzHqjGXlCyddI699XPsBFhw75SvaaDMdGc1vSujabv3qRNWFY9/Ad1gBRRyGhN/3CJry7hWoUN+koMeoIISMu/2E1x9DMEuRKr00NEGGn52WK+upYc2+gr9r5GBjlitzwh/qCo4vZ12HaRYKDEn2jkT9S+7ne/oZEr9mcaWe3cV3PiRUWFdUdspsg/IZ2JB8CzurF18sUv54ZN0MgVz+b0ELcRr4BvfaiORGd6x0bXYkSuKITOzPgH8Iw5t8qWjZddbm0R6wfqeMgEsa0ZrfILS94WR1UhV+RDdWdTXgLU62yVdZomHgKxGXkw1G4jV7xOMzxX242JjLaJnfK2JVcRdS0E+0r8QGM/VBEeKl1qjb4S72ut5ZMfq+0DFT7QJBxq+93rjVyxD9XzoeRDKRwoJVe0ShuCXInnGnuuIsyX89XaaWSKgwPt+oHkB+qRLe+EdQobDJT4scZ+rCI8+rAz3+bdM4GLVeTfRq44yLXrueS5eqv+YGAVW3GmKNxXOgt4aWcV3K3ynrXZseJK665Y1kZfcXCkXRM5MC6d+PRzSz/03PSOjco/WWKwAxSIb32ocTBQsrARuaLwidKZGJuIBK2yZW1aV/TVqvFHavsjTfyRJuH++9vZsgR9Jf54RRGbKwqPlPqRCj/SKOgvIcgFwoFSH6rwobRI/vVcbX+qiT/VxPP1V922zENBpsRqpNRo2pzu6ZzulSP04vr7SqxGXn5pS9n3Bu+rjZECINLy7uXtt4XJFXlJlxr3AUw8PA3oXhZ5nqvJnC7QNOie1i6/b6M0MsW+p57vSb6nXiNbT7UY7Cvxw+UjNugr8SON/HsVYX/1Rc8b/FhNH2jkg0vy71nF3Vs0slfFrz7HhpnS83HaWRtw5/8jorWwjKyZIm/QBe5rzl4AzXUesco/2xhIwqG2Jbrn+bcDjJjR5s047c6vawNeK2Gmbc808UyFZ9fTkTk/Mi0kbXio1B+r8EONr5pHlyUcKD0/QhV+vLnu1S/imZr+b408k8JM6VWOL4uyiLDhY237oSb+WIX3K+DMXNG6tv5FeH8rzhS5LozTYOtkZwMdow/I6odqAl2J2wYPT1+vtoBbmooURj8R1r9ThzkpUGhOa/p1BXNDpshDUsQDjGf12oU57g1vCQCCfykxuzAi+lsFxmmXRKwfqINImVMIWtN7ay7gfsMEAAY58M+yTlqJ7ewdgn0ldpYeYoy0vFeBD6/iBAD1KVsn31RoO5sCtbNz86x+Pk6Dv5dfrajB8DugBlApUS8wq/ESATNulX+9EXURKvP76XuIV1anc/qV3fyx+NFwjWfmj5X/Adm+qVhEoPMeAAAAAElFTkSuQmCC","e":1},{"id":"image_31","w":9,"h":7,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAHCAYAAADam2dgAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAg0lEQVQYlX2PwQnCQBRE31/d4FFswJRgBUI6sANTiiVoJV697Y+VbAt6EhJ3vKgohMxxZnjwjIlUV+2KuIexMSZtYieXOAfYzv/WpGUMHIH9u7mVgn9JVdIhBvLP4dQX6qExt0VS/TQcWANgdLNC+2gsfwAGEF0ZQKIdGvNxjYtWU5Yv+DQr4wZNr2QAAAAASUVORK5CYII=","e":1},{"id":"image_32","w":23,"h":16,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAQCAYAAAD9L+QYAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABNklEQVQ4jbWSwU0CURRFz2MGQtxIB7J2YwXqTAU2YCIdOB347WBKGDrQWMB3sAE27qED2RFguG4+EA0QBvEt77/v/JuXa/zDtAa6tJhZ46RUr05zoELGpyru41NxW6WcIjLEOQBiaH+Fxh9KTBTARZDKqKI3TW10NLzt1a0aFBi3QRrL6C2u7X3lqQ/36jQbOOAxKBMMN7+x/Le1Frzp1aNBDuGu0J8vyUjta5v/IHjslZiRA1dhq2RJNk9tuHdv32Pbq7uA3Iy7II1NZLPEXg4JtT25V6cFmeApKBODfJaaOwS6E9706iEctq5WPwI3TW1UB/wDHnslJhysq1XKcIt0U63a8LZXtxIO8RC+G2O4eWrFsdB14GpJsUpr8Dwz8l3Vqg0HkHiNI7Jj7rp/3nR2WuBmvgG7amoXOz6TuAAAAABJRU5ErkJggg==","e":1},{"id":"image_33","w":11,"h":14,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABJ0lEQVQokZWQvVHDYBBE30r+GDIoAToQFWAqQE7EGAJcgkowFUAHKAENmMB0QAeoA6ADk/IhL4FkfgwJF+692btd8ceEW2cSuROGmOeYUjLSIvkF3vkC8WiR99JpWDIH0A9w5gqTAZNYqOm1EnGepuzqG1hiyhjIGGmxZmLDQQKwWXsHM4XudJi5CjOX6y8KINy4AohHmoQbPyD2+/1e2rJoU55iIXUBTY64CLfOgH0MmNdYqGkH5IZ7gGRQewgQCzVu2e5BWNK90VKKro2VcwPwPtaDzJnEKI5VbdSeYp5joQpg0MPZKsTbWFOAUHtiUZIwXO0SLVkAW+G6CxmunIXaFXCp5Vffn20Mas9lDr+19ILJ48kX+An3jhPBDqJ5O9Z8veN/zwfry3sAuCOxIgAAAABJRU5ErkJggg==","e":1},{"id":"image_34","w":36,"h":29,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAdCAYAAADCdc79AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAACM0lEQVRYhc2WQU7bUBCGv3HsKDtyA3KDVlX3SdRSiW7KDcgN6hvUvYG5QThB6YpWqDLQdtUNbLuCG5AdwnH+LlJHiWM7MUkI//K9eW8+jf8ZP+OZyPul17HLX2fbII1ILe9SfeCPG/PK3SZM/aeCxPARO2i8thWg+qUOZISC3RQk1ZMCeb/1koRQ0J6A2DaAIjU9h5CEw7m96QoZbNzU3qV8z+EGOEQZgBxtrEJupI7V6CN25zYzVdkoUCNSK3HoI9qM8pPOaAw3MAjjhKuy0GqK1PQgwPhYGJOTTfDVHeHfd+2mIKS6vEg9IAR2ypJndC3hD7t2Pr24EpAbqWMixHhRGjibZYDw4671F4cuqUak1lCEBh8q3ngUQ0DX7ooCqgFFatZH+IJPC0/O7l/UoJf6ZPljJfJ+qAcEkNPGxbfcyuhlfbISkHumjjkEiPZSJ8frA0QQv7FwWZDFQJGaXkyIkzPuy24wjmPDL/NJZaD6mQKBz3QbF0ZP9i5w8OOuXT0GJDdF41StpMY50z4p/zQAtwb+w1s7WQUk1cyvI6lxQta0Bc8ENB73D3sWrANkDsj7phD9H3B5VZn9Sx/XEoL7/cVtXFUGUP+uA8GX4oiJLmQEw73l27gyUONUrcS4IjVwvmcGGH78Ln/cr1PuCHpMd1PmrWLw+aFO+Ng2rgw0gchUZvIs2IBPFgOlUGNdC/zhvp0Pn5JkAjQifVmPx/376uN+nXJk3CGO4nta24Z5lvoHAU+/aLfpCfsAAAAASUVORK5CYII=","e":1},{"id":"image_35","w":9,"h":9,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAqklEQVQYlW2OzRXBYBBF73wk7KID0YESWLKiAyVEBdKB6EARCCutJB0ku5DjPBtx4ueu5szMue9Bm6sG3lmJf9GivbZm8E6KcMRAAOR1jzFTKwBcN9XES5VhbBEBAsTQr4gagTOxQgzRRzCCqJ8qBHD1jQgom0vrOXhA/O7kHxXL2PCHjjFyAPc7CSL/MpXAuppZ5gBYWsFL/Yrd1TfCem7Jj9o7aN+UbfME9ZM80jBJlIQAAAAASUVORK5CYII=","e":1},{"id":"image_36","w":9,"h":9,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAqUlEQVQYlWWPwQ2CUBBE3/74CTftAEqgBS4m3uzA2AEdaAmUgFUQuNgCdqAdwE0hsB4Qwsc5bSZvZjOwki01sqVmS0/m664725EinABQzt1eshnyCr2qkADbRfzVbYiIpTZ+rqEKFwcYmwKvJZmbbKEZ/N6IgzadJRQAP9ewN1R/bWPgZgDeB3nKQLpeivLQnsxd96ECAqDBkDjrJnmFHhmIWp+UWOrJ/wJbuzaaTVArSwAAAABJRU5ErkJggg==","e":1},{"id":"image_37","w":9,"h":10,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAKCAYAAABmBXS+AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAq0lEQVQYlYWPzQ2CUBCEv338xKMdSAdqB5B41w7EDiyBEiiBErhL8qQT7QBuJijrgfgENXFOm9lvZ7LwocBq6luNx57vBquxKDnKUqAGHCgzq9H9QS7CdnBeGw5dIgWA+JWWDpjq2hlWJNIY6clQQL+gRdhzdOFBpQWwnyBDbdsZIgPgeWRAO4GG9BLAANwSuYiSj1JqetbdRlISad6XVufBSc9hpbsfT/zXE/YIM8NrnSUvAAAAAElFTkSuQmCC","e":1},{"id":"image_38","w":49,"h":48,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADEAAAAwCAYAAAC4wJK5AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAC0klEQVRoge2YwWobVxSGv2PdK7Scbbsa9wncJ4j8BIkWpaRQokBLMaF0/ASZN/CEUkwJrZyWIogXcckLONB10CPoEdRNkTp35u/CTilUdSxpRqMx/TazmXvu+Tnn3HPPNVpM97UedODtXtOObIJEksNHrRbxDte0AxshoIA7EYn/RewCBnG7RZR3QcQ17Rahq0+7RQCUd0EEYE07sA7+pQ7okAH3TAza1bFfKfIFGfBI4lfXYX8+sGlrRPhzJQRSYCY4DJ/YZWjaqdviztX3LzX155r5cyXL/tnZmuiNFRcdzoB7wLPckzKw2bJ/dy+dXinyC9LC+AbxplOyP39o05uW7JQIP9aQBRkwMxj8+ald5E07dVvcWH0/1sSPNeuOla68vgafbk1vrDhAZuI+8CJf0Ofx8ry/iWZEjBR1uyRFSWLGRMZheGiX65rbugj/iw4QFxJgJPlndrapza2LUElmxmWek6yTOo3jf9LQ/6xp1Xa3F4mRIkEmGFZtemtXcbdHAkyKz+2icttVG1xGb6Q4wFNXsF/HpW0rkQiQUfJs/vjm68O61B4JN1Ifox9EXNce24hEZiJt5XEK4H9Q4n7UpO596kunkSKVpBgPatvjmnqGopEiV3AGEL6w2kVUXhPuuVJXMAVi12HpOFk1lUXCPVff4EwQGaT5l5ZVZft9bCyid6o4/GMWDn77J9H6hT1S5Bak4XoWdiX786N6mtn7WEuE/16JFqRmzFRyGI6afQNaKZ3cqfpABsRAFo4srd6l1blVJHqnV7Mw4r69m4WPd6cD3yziRJHrkoSSp8Abg4/zJ1Z7B16V/xThv9NQIjMxK8Wg+Lr6OaAq/lUT7lv1gRQ4ALIQyHYpdZbxdyR6J4oLRyrxyIwXncBwftzMkbkqjhNFbo8kQELJhJLD/NguW/N8CDh3lTaJlST58eZvQE3gwu/8xgd8yFf2R9POrMtf9T0DghDhnVcAAAAASUVORK5CYII=","e":1},{"id":"image_39","w":11,"h":14,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABCUlEQVQokZWQzU3DQBCFv1k2iBvpANOBO2BLcAekAqKA4GxOkRIhuwR3gEtwOkgJKSEc0S5+HEKi/PjCOz59M/PmGQPylQKOAsjNaOOT1QB2QlUae2gxHhArc2SCO+A9Ta10Z2AHbL24TzMLcWoZPSt6CgB/OC1ag3V8tkk6Oiaozfg8wKMPTRBZ3OU8kcEW8QXg/sZLoGRm2wu4J0esAdxooRwgvlgz1IwgmGgBnIwC0Q2Bo0o5EKKj2cUQuXo2g1t/aOip9/EcgDmyi61LNQjSq5V7z5no1PPo5woAfqngF+oEefKE02Yqjf03G4zbI3+VrinO2zGAm7myBBMAu6KNb7Ye+uFf+gVh6GK4DIYCHQAAAABJRU5ErkJggg==","e":1},{"id":"image_40","w":4,"h":5,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAFCAYAAABirU3bAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAUUlEQVQImS3HMRGAMBBFwXc3YYYukYAEpKCGgioO8EGFBCQgBWrCfRq2WwPoVo0S1YMl9auGFhxADqf425gQGQBxJUH5c1tQkxtbCEzsz2znB4dtG7pnHqfpAAAAAElFTkSuQmCC","e":1},{"id":"image_41","w":71,"h":62,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAA+CAYAAAB5nQYWAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAFA0lEQVR4nO2az2obVxTGf2c8mOykN7DeIH4DT0ILXbRkKG1x2oKHloILKbm0DpRuMoYuCnXhppQS6EbeedGFAqWLFmL5CZq8QfQG0S5RpDldzFiOrdFIY80fyckHRpo7Z+495/N3zj2+Y+EtANAf/E0ED8EHrPzY6UjdTtUN/d5vgYQIO8kICOBww63TsTqhxm+y7hgUAzRQQBQQUCDCX6vXxXqg9z4MWHOOQG6BXIulAvFn8iO8fKOUo/c+3kTVErE15uOiYiQZVOGNIEeN30TWLSPdOVMJxGzA5JgAevXJUbMdghpUG6ic8aAKklxcUEz8/QorR+/c9nHUEukGcIGIMRuvP3F+TK6gctRstxhKG9iKsyaDhFTFMFbVlSFHTdBkMAgZcDc9YKYUXqaq6kqQo19/Znj5KgRpJCPMTJuZNiuuHN393EOxRFwHMlIkuTk1jZhUla6ocnQ3aDEaWUbcAjJ2oHkUlDYWb/ErRY4GQRMXw6vo/piE+E7yOSVtMgtv8lyKzcqQo18EQZxC2sidIpBfVatAjgaBBxISsZW/qJ5eM/25aSSPlrjP0SBoEUlIJDvjY4TcillEVc7ykaNB0GToGoYaHyWkBVPIVn16Tfpzy5ZWevtLn4FYhI3xfpoWYBFb9Rw2S0GOfvrVJhGW05Y/bzdbkqpqJUf9oMm1dcvo9IhyfIf8wSRjRamqzg5ZP9kNUTWMaCxeVEtQVR2HXfrRrodKm5FuTAbDeSIKS5FkLKeqKiNH/d0W4rRz9SuFbNWXV1Xp5KhvmjAIQe6iczqa2ndQraqcksnRD74JiIYWnMZifwTWoKpRSeTo+3c8EItyfdyvFCX/YlV1AmJQNhENQTfObGRihoWg75kWTmSBW+ccPVtvcgzOAsy0ScZy26TNrz0glKM/2uOZgqDJwDWAQWig+qAQctQ3TV5gEL1fUjBz2KTNn2Lj6D4vBlY67eepsWzvtnCGAetDuzA5+u63AU4UAhu5Ha1WVY9Yw8jRw2czQppcLi/0nT0PiULQrZKCSbFJm3+mzVNEjfz5sJsZUApyk6OeabG2FgI7pcp/cVX1UYx0fm9nRzQducjRm3shikG0MTFDESSMxxdUlegDWA+lY1PryryYixz1vvMRsZzWlYkZKi6q01V1guMG0rHPMsKZG5nkqHdvE9H4KGHuGVOCKV9VPdBA/vqtO7efcyCVHPVME3EtXDxKuMzsZaqKPqiVv38NF/JzCibI0Zt7BiUEGpPmi65WpKo45Bpm0bqShXPk6I29NouqJdfKl1LVCapG/rVPynXw9d9VlcSkejJTVT1EjPzzS6cylwDU2/MQjqtadCbOK6aPiGU4tNItL4XS4CYOhFUuOhMKCUOHRG4o3Z+e1eGGJNv1f3UsnoETlFC6B906nXBx1ENnG1aEPipGuj+363YE4rRq1u0EAMI+UfV1JQvL8FLvEeoaOa6nrmShTnJ6KEHddSULdZDTRwjl8YGtYe1cqJYckQdEr0I5Xp66koWqyDlB3WAZ60oWyianh6qRbnUtf5Eoi5w+gpXHB2FJ81eCMsg5RIdmVepKFook5yTpbks/SqgKRZDTQyVclpa/SCxCTh/BLlvLXyQuS84h6oartjXnhUukT87/q3wmnqKYZW75i4QLo+4cAlqqo4Sq4EjXPkfYn2oh7KPD1ptGDLx+wB6/6g2I32r2gC5a3xHlW7zF6uJ/r8S6343sjDEAAAAASUVORK5CYII=","e":1},{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[679.5,369.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,103.629,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-21.401,0],[0,-16.016],[21.401,0],[0,16.016]],"o":[[21.401,0],[0,16.016],[-21.401,0],[0,-16.016]],"v":[[0,-29],[38.75,0],[0,29],[-38.75,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.996078431606,0.766716122627,0.148435205221,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[457.5,63.46],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,76.021],"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":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":53,"s":[100]},{"t":77.0000031362743,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[640,360,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-136.967,0],[0,-67.379],[136.967,0],[0,67.379]],"o":[[136.967,0],[0,67.379],[-136.967,0],[0,-67.379]],"v":[[0,-122],[248,0],[0,122],[-248,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[184,76],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[104.453,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":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[636.25,358.75,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[101.057,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-48.049,0],[0,-20.849],[48.049,0],[0,20.849]],"o":[[48.049,0],[0,20.849],[-48.049,0],[0,-20.849]],"v":[[0,-37.75],[87,0],[0,37.75],[-87,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":0,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":0,"ix":5},"r":1,"bm":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[256.75,-31],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[121.264,139.597],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":3,"nm":"Null 1","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.65,"y":1},"o":{"x":0,"y":0},"t":27,"s":[642,391,0],"to":[-0.333,-5.167,0],"ti":[0.333,5.167,0]},{"t":56.0000022809268,"s":[640,360,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"dot wifi","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":41,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":70,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":76,"s":[80]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":99,"s":[0]},{"t":105.000004276738,"s":[80]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[897,200,0],"ix":2},"a":{"a":0,"k":[10,10,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":73,"s":[0,0,100]},{"t":85.000003462121,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"wifi small","refId":"image_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":41,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":70,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[80]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":95,"s":[0]},{"t":105.000004276738,"s":[80]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[896.5,182.5,0],"ix":2},"a":{"a":0,"k":[23.5,9.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":73,"s":[0,0,100]},{"t":85.000003462121,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"wifi","refId":"image_2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":41,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":70,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":85,"s":[80]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[0]},{"t":105.000004276738,"s":[80]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[896.5,166,0],"ix":2},"a":{"a":0,"k":[37.5,12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":73,"s":[0,0,100]},{"t":85.000003462121,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"ball 2","refId":"image_3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":68,"s":[0]},{"t":74.0000030140818,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73.06,"s":[887.75,289.75,0],"to":[48.049,0,0],"ti":[-0.5,-30.849,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.436,"s":[974.75,327.5,0],"to":[2,31.849,0],"ti":[48.049,0,0]},{"t":126.000005132085,"s":[887.75,365.25,0]}],"ix":2},"a":{"a":0,"k":[4,4,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"ball","refId":"image_4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":68,"s":[0]},{"t":74.0000030140818,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.621,"s":[983.75,329,0],"to":[0,20.849,0],"ti":[48.049,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.825,"s":[896.75,366.75,0],"to":[-48.049,0,0],"ti":[0,20.849,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.796,"s":[809.75,329,0],"to":[0,-20.849,0],"ti":[-48.049,0,0]},{"t":126.000005132085,"s":[896.75,291.25,0]}],"ix":2},"a":{"a":0,"k":[9,8.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"wave 3","parent":4,"refId":"image_5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":41,"s":[0]},{"t":70.0000028511585,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41,"s":[255.302,37,0],"to":[0,-22.636,0],"ti":[0,22.636,0]},{"t":70.0000028511585,"s":[255.302,-98.814,0]}],"ix":2},"a":{"a":0,"k":[67,48.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[0,0,100]},{"t":70.0000028511585,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"wave 2","parent":4,"refId":"image_6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":41,"s":[0]},{"t":62.0000025253118,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41,"s":[255.302,37,0],"to":[0,-15.886,0],"ti":[0,15.886,0]},{"t":62.0000025253118,"s":[255.302,-58.314,0]}],"ix":2},"a":{"a":0,"k":[100,52,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[0,0,100]},{"t":70.0000028511585,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"wave 1","parent":4,"refId":"image_7","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":41,"s":[0]},{"t":53.0000021587343,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41,"s":[255.302,37.686,0],"to":[0,-11.5,0],"ti":[0,11.5,0]},{"t":53.0000021587343,"s":[255.302,-31.314,0]}],"ix":2},"a":{"a":0,"k":[116,60,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[0,0,100]},{"t":70.0000028511585,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"text chat mini","refId":"image_8","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":34,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":59,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":77,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":95,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":113,"s":[0]},{"t":129.000005254278,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34,"s":[610,282.5,0],"to":[0,2.917,0],"ti":[0,-2.917,0]},{"t":59.0000024031193,"s":[610,300,0]}],"ix":2},"a":{"a":0,"k":[8,11,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"text chat mini 2","refId":"image_9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":32,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":57,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":69,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":87,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":105,"s":[0]},{"t":121.000004928431,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[620.5,259.5,0],"to":[0,2.917,0],"ti":[0,-2.917,0]},{"t":57.0000023216576,"s":[620.5,277,0]}],"ix":2},"a":{"a":0,"k":[8.5,11,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":2,"nm":"text chat mini 3","refId":"image_10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":35,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":60,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":77,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":95,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":113,"s":[0]},{"t":129.000005254278,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[1144.5,377.5,0],"to":[-4.917,0,0],"ti":[4.917,0,0]},{"t":60.0000024438501,"s":[1115,377.5,0]}],"ix":2},"a":{"a":0,"k":[8,10.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":2,"nm":"text chat mini 4","refId":"image_11","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":32,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":57,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":70,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":88,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":106,"s":[0]},{"t":122.000004969162,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32,"s":[1134,354,0],"to":[-4.917,0,0],"ti":[4.917,0,0]},{"t":57.0000023216576,"s":[1104.5,354,0]}],"ix":2},"a":{"a":0,"k":[8.5,11,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":2,"nm":"text chat mini 5","refId":"image_12","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":34,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":59,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":77,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":95,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":113,"s":[0]},{"t":129.000005254278,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34,"s":[552,390.5,0],"to":[0,2.917,0],"ti":[0,-2.917,0]},{"t":59.0000024031193,"s":[552,408,0]}],"ix":2},"a":{"a":0,"k":[8,11,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":2,"nm":"text chat mini 6","refId":"image_13","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":56,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":69,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":87,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":105,"s":[0]},{"t":121.000004928431,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31,"s":[563,366.5,0],"to":[0,2.917,0],"ti":[0,-2.917,0]},{"t":56.0000022809268,"s":[563,384,0]}],"ix":2},"a":{"a":0,"k":[8,11,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":2,"nm":"bar level mask","td":1,"refId":"image_14","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[100]},{"t":54.0000021994651,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[852.5,309,0],"to":[10.75,-11.25,0],"ti":[-10.75,11.25,0]},{"t":61.0000024845809,"s":[917,241.5,0]}],"ix":2},"a":{"a":0,"k":[64.5,42.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":61,"s":[100,100,100]},{"t":95.0000038694293,"s":[242,242,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":2,"nm":"bar level","tt":1,"refId":"image_14","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":54,"s":[0]},{"t":61.0000024845809,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[935.5,357,0],"to":[9.833,-11.75,0],"ti":[-9.833,11.75,0]},{"t":61.0000024845809,"s":[994.5,286.5,0]}],"ix":2},"a":{"a":0,"k":[64.5,42.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":2,"nm":"full bar level","refId":"image_15","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":54,"s":[0]},{"t":61.0000024845809,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[946.5,362,0],"to":[9.833,-11.75,0],"ti":[-9.833,11.75,0]},{"t":61.0000024845809,"s":[1005.5,291.5,0]}],"ix":2},"a":{"a":0,"k":[74.5,47.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":2,"nm":"call","refId":"image_16","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":35,"s":[0]},{"t":56.0000022809268,"s":[100]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":64,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":68,"s":[17]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":72,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":76,"s":[17]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":80,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":84,"s":[17]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":88,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":92,"s":[17]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":100,"s":[17]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":104,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":108,"s":[17]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":112,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":116,"s":[17]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":120,"s":[-12]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":124,"s":[17]},{"t":128.000005213547,"s":[-12]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":35,"s":[890.5,571,0],"to":[-0.083,-4.583,0],"ti":[0.083,4.583,0]},{"t":61.0000024845809,"s":[890,543.5,0]}],"ix":2},"a":{"a":0,"k":[15,18.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":35,"s":[0,0,100]},{"t":61.0000024845809,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":2,"nm":"call place","refId":"image_17","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":35,"s":[0]},{"t":56.0000022809268,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35,"s":[894,574,0],"to":[-0.083,-4.583,0],"ti":[0.083,4.583,0]},{"t":61.0000024845809,"s":[893.5,546.5,0]}],"ix":2},"a":{"a":0,"k":[54.5,32.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":35,"s":[0,0,100]},{"t":61.0000024845809,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":2,"nm":"call place 2","refId":"image_18","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"t":51.0000020772726,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[894,586.5,0],"to":[-0.083,-4.583,0],"ti":[0.083,4.583,0]},{"t":56.0000022809268,"s":[893.5,559,0]}],"ix":2},"a":{"a":0,"k":[48.5,28,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[0,0,100]},{"t":56.0000022809268,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":2,"nm":"statistik mask","td":1,"refId":"image_19","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":41,"s":[0]},{"t":61.0000024845809,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":41,"s":[988.5,304.5,0],"to":[2.461,-2.966,0],"ti":[-5.935,7.153,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[1011.153,296.046,0],"to":[9.74,-11.738,0],"ti":[-4.039,4.867,0]},{"t":61.0000024845809,"s":[1027.5,257.5,0]}],"ix":2},"a":{"a":0,"k":[83.5,56.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":26,"ty":2,"nm":"statistik","tt":1,"refId":"image_19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1028.5,257.5,0],"ix":2},"a":{"a":0,"k":[83.5,56.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":27,"ty":2,"nm":"light middle 2","refId":"image_20","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[0]},{"t":87.0000035435826,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[974.5,495,0],"ix":2},"a":{"a":0,"k":[15.5,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":28,"ty":2,"nm":"light 2","refId":"image_21","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[0]},{"t":87.0000035435826,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[974.5,413.5,0],"ix":2},"a":{"a":0,"k":[15.5,89.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"ring light 1 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[974.5,517,0],"ix":2},"a":{"a":0,"k":[24.5,5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[14.592,5.703],[0,0],[-12.109,5.398]],"o":[[-13.92,6.397],[0,0],[12.738,4.72],[0,0]],"v":[[24.013,-2.439],[-24.013,-1.396],[-20.755,-3.29],[20.777,-4.307]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.281,4.753],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":55,"s":[100]},{"t":71.0000028918893,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"ring light 2 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1004,509,0],"ix":2},"a":{"a":0,"k":[4,3,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.379,-0.933],[0,0],[-1.035,1.04]],"o":[[-1.086,1.019],[0,0],[1.368,-0.945],[0,0]],"v":[[3.459,-0.511],[-0.236,2.422],[-3.459,0.562],[0.145,-2.422]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.197,2.729],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":55,"s":[100]},{"t":71.0000028918893,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":"ring light 3 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[972.5,495.5,0],"ix":2},"a":{"a":0,"k":[22.5,13.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-7.55,-4.359],[-7.501,4.359],[7.548,4.358],[7.5,-4.359]],"o":[[7.549,4.358],[7.5,-4.358],[-7.551,-4.359],[-7.501,4.359]],"v":[[-13.58,7.892],[13.67,7.891],[13.583,-7.892],[-13.669,-7.892]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.774,-4.489],[7.723,-4.488],[7.774,4.489],[-7.724,4.49]],"o":[[7.774,4.489],[-7.724,4.49],[-7.775,-4.489],[7.724,-4.488]],"v":[[13.986,-8.127],[14.078,8.127],[-13.984,8.128],[-14.077,-8.129]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.944,13.791],"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":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":72.0000029326201,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":"ring light 4 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[945,490,0],"ix":2},"a":{"a":0,"k":[17,17,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.198,-2.44],[-6.41,-7.785],[0,0],[-12.868,7.479],[-5.155,1.151]],"o":[[-5.302,0.987],[-11.084,6.441],[0,0],[-8.09,-8.899],[4.148,-2.411],[0,0]],"v":[[16.466,-14.428],[1.984,-9.288],[-5.01,14.526],[-8.376,16.482],[-1.227,-11.143],[12.906,-16.482]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.27,17.247],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":72.0000029326201,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"ring light 5 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1008.5,504,0],"ix":2},"a":{"a":0,"k":[3.5,3,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.711,-0.809],[0,0],[-0.463,0.877]],"o":[[-0.54,0.842],[0,0],[0.665,-0.842],[0,0]],"v":[[2.637,-0.207],[0.763,2.271],[-2.637,0.309],[-0.941,-2.271]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.511,3.281],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":54,"s":[100]},{"t":70.0000028511585,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"ring light 6 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[954,502.5,0],"ix":2},"a":{"a":0,"k":[2,1.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.415,-0.24],[0.414,-0.24],[0.416,0.24],[-0.414,0.24]],"o":[[0.417,0.24],[-0.414,0.24],[-0.416,-0.24],[0.414,-0.241]],"v":[[0.749,-0.435],[0.753,0.435],[-0.749,0.435],[-0.754,-0.435]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.734,1.823],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":59,"s":[100]},{"t":75.0000030548126,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":"ring light 7 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[973,496,0],"ix":2},"a":{"a":0,"k":[34,20,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-10.415,-6.013],[-10.347,6.013],[10.414,6.012],[10.346,-6.013]],"o":[[10.414,6.013],[10.346,-6.013],[-10.414,-6.013],[-10.347,6.012]],"v":[[-18.732,10.886],[18.856,10.886],[18.734,-10.886],[-18.855,-10.886]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-11.716,-6.764],[11.639,-6.763],[11.715,6.764],[-11.64,6.765]],"o":[[11.715,6.764],[-11.64,6.765],[-11.717,-6.764],[11.639,-6.764]],"v":[[21.075,-12.247],[21.213,12.247],[-21.075,12.248],[-21.213,-12.247]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[33.944,19.791],"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":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":62,"s":[100]},{"t":78.0000031770051,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":36,"ty":4,"nm":"ring light 8 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[957,505.5,0],"ix":2},"a":{"a":0,"k":[2,1.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.417,-0.241],[0.413,-0.24],[0.417,0.24],[-0.413,0.239]],"o":[[0.417,0.24],[-0.413,0.239],[-0.416,-0.24],[0.414,-0.241]],"v":[[0.749,-0.434],[0.753,0.436],[-0.749,0.435],[-0.754,-0.434]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.385,1.57],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":62,"s":[100]},{"t":78.0000031770051,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":37,"ty":4,"nm":"ring light 9 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[973,496,0],"ix":2},"a":{"a":0,"k":[13,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.992,-2.305],[-3.966,2.305],[3.99,2.305],[3.965,-2.304]],"o":[[3.991,2.304],[3.965,-2.304],[-3.992,-2.304],[-3.966,2.305]],"v":[[-7.179,4.173],[7.227,4.172],[7.18,-4.172],[-7.226,-4.172]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-4.49,-2.593],[4.461,-2.592],[4.489,2.592],[-4.462,2.592]],"o":[[4.49,2.592],[-4.461,2.592],[-4.491,-2.592],[4.46,-2.593]],"v":[[8.077,-4.693],[8.13,4.694],[-8.076,4.694],[-8.129,-4.693]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.944,7.791],"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":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":72.0000029326201,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":38,"ty":4,"nm":"ring light 10 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[994.5,496,0],"ix":2},"a":{"a":0,"k":[3.5,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.987,-4.45],[0,0],[4.804,4.285]],"o":[[5.053,4.445],[0,0],[4.74,-4.289],[0,0]],"v":[[-2.305,-7.343],[-2.198,7.343],[-2.686,7.061],[-2.789,-7.063]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.626,7.781],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":72.0000029326201,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":39,"ty":4,"nm":"ring light 11 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1011,499.5,0],"ix":2},"a":{"a":0,"k":[3,3.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.514,-1.09],[0,0],[-0.049,1.2]],"o":[[-0.239,1.116],[0,0],[0.403,-1.181],[0,0]],"v":[[2.452,-0.438],[1.319,2.878],[-2.452,0.701],[-1.774,-2.878]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.92,3.226],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":72.0000029326201,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":40,"ty":4,"nm":"ring light 12 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[973,493,0],"ix":2},"a":{"a":0,"k":[18,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.265,-3.616],[3.828,-3.573],[0,0],[4.679,2.702],[5.532,-3.215],[-2.407,-3.035],[0,0],[-5,2.905]],"o":[[5.379,3.106],[0,0],[3.157,-3.152],[-5.567,-3.214],[-4.298,2.498],[0,0],[-3.062,-3.475],[6.222,-3.616]],"v":[[11.203,-3.913],[13.538,7.529],[12.239,6.779],[9.95,-3.185],[-10.146,-3.185],[-12.976,6.052],[-14.303,6.823],[-11.406,-3.913]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.009,8.156],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":72.0000029326201,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":41,"ty":4,"nm":"ring light 13 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[951.5,499.5,0],"ix":2},"a":{"a":0,"k":[1.5,1.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.416,-0.241],[0.413,-0.24],[0.415,0.24],[-0.413,0.239]],"o":[[0.416,0.239],[-0.413,0.24],[-0.417,-0.24],[0.414,-0.241]],"v":[[0.749,-0.434],[0.753,0.435],[-0.747,0.435],[-0.753,-0.434]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.464,1.779],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":72.0000029326201,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":42,"ty":4,"nm":"ring light 14 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[0]},{"t":66.0000026882351,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[990,483.5,0],"ix":2},"a":{"a":0,"k":[25,13.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-9.833,-5.678],[0.223,-6.228],[0,0],[6.142,3.545],[10.301,-0.527],[0,0]],"o":[[8.231,4.752],[0,0],[-0.847,-4.629],[-7.913,-4.57],[0,0],[12.675,-1.318]],"v":[[11.917,-4.7],[23.932,12.556],[19.211,9.83],[8.728,-2.846],[-20.117,-8.906],[-24.155,-11.237]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.74,13.805],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":72.0000029326201,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":54.0000021994651,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":43,"ty":2,"nm":"tempalte chat 2","td":1,"refId":"image_22","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":54,"s":[0]},{"t":55.0000022401959,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54,"s":[721.802,415.186,0],"to":[0,-0.699,0],"ti":[0,1.671,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55,"s":[573.302,303.851,0],"to":[0,-2.91,0],"ti":[0,1.217,0]},{"t":73.000002973351,"s":[721.802,403.686,0]}],"ix":2},"a":{"a":0,"k":[111.5,64.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":44,"ty":2,"nm":"text chat 2","parent":4,"tt":1,"refId":"image_23","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":41,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":54,"s":[0]},{"t":61.0000024845809,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41,"s":[71.302,109.186,0],"to":[0,-11.5,0],"ti":[0,11.5,0]},{"t":57.0000023216576,"s":[71.302,40.186,0]}],"ix":2},"a":{"a":0,"k":[78,49.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":45,"ty":2,"nm":"tempalte chat","parent":4,"refId":"image_22","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":41,"s":[0]},{"t":52.0000021180034,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41,"s":[81.802,113.186,0],"to":[0,-11.5,0],"ti":[0,11.5,0]},{"t":57.0000023216576,"s":[81.802,44.186,0]}],"ix":2},"a":{"a":0,"k":[111.5,64.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":41,"s":[0,0,100]},{"t":58.0000023623884,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":46,"ty":2,"nm":"light middle","refId":"image_20","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0]},{"t":62.0000025253118,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[576.5,447,0],"ix":2},"a":{"a":0,"k":[15.5,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":47,"ty":2,"nm":"light","refId":"image_21","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0]},{"t":62.0000025253118,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[576.5,365.5,0],"ix":2},"a":{"a":0,"k":[15.5,89.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":50,"ty":4,"nm":"ring light 1 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[576.5,469,0],"ix":2},"a":{"a":0,"k":[24.5,5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[14.592,5.703],[0,0],[-12.109,5.398]],"o":[[-13.92,6.397],[0,0],[12.738,4.72],[0,0]],"v":[[24.013,-2.439],[-24.013,-1.396],[-20.755,-3.29],[20.777,-4.307]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.281,4.753],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[100]},{"t":46.0000018736184,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":51,"ty":4,"nm":"ring light 2 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[606,461,0],"ix":2},"a":{"a":0,"k":[4,3,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.379,-0.933],[0,0],[-1.035,1.04]],"o":[[-1.086,1.019],[0,0],[1.368,-0.945],[0,0]],"v":[[3.459,-0.511],[-0.236,2.422],[-3.459,0.562],[0.145,-2.422]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.197,2.729],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[100]},{"t":46.0000018736184,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":52,"ty":4,"nm":"ring light 3 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[574.5,447.5,0],"ix":2},"a":{"a":0,"k":[22.5,13.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-7.55,-4.359],[-7.501,4.359],[7.548,4.358],[7.5,-4.359]],"o":[[7.549,4.358],[7.5,-4.358],[-7.551,-4.359],[-7.501,4.359]],"v":[[-13.58,7.892],[13.67,7.891],[13.583,-7.892],[-13.669,-7.892]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-7.774,-4.489],[7.723,-4.488],[7.774,4.489],[-7.724,4.49]],"o":[[7.774,4.489],[-7.724,4.49],[-7.775,-4.489],[7.724,-4.488]],"v":[[13.986,-8.127],[14.078,8.127],[-13.984,8.128],[-14.077,-8.129]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.944,13.791],"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":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":47.0000019143492,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":53,"ty":4,"nm":"ring light 4 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[547,442,0],"ix":2},"a":{"a":0,"k":[17,17,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.198,-2.44],[-6.41,-7.785],[0,0],[-12.868,7.479],[-5.155,1.151]],"o":[[-5.302,0.987],[-11.084,6.441],[0,0],[-8.09,-8.899],[4.148,-2.411],[0,0]],"v":[[16.466,-14.428],[1.984,-9.288],[-5.01,14.526],[-8.376,16.482],[-1.227,-11.143],[12.906,-16.482]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.27,17.247],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":47.0000019143492,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":54,"ty":4,"nm":"ring light 5 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[610.5,456,0],"ix":2},"a":{"a":0,"k":[3.5,3,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.711,-0.809],[0,0],[-0.463,0.877]],"o":[[-0.54,0.842],[0,0],[0.665,-0.842],[0,0]],"v":[[2.637,-0.207],[0.763,2.271],[-2.637,0.309],[-0.941,-2.271]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.511,3.281],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":29,"s":[100]},{"t":45.0000018328876,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":55,"ty":4,"nm":"ring light 6 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[556,454.5,0],"ix":2},"a":{"a":0,"k":[2,1.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.415,-0.24],[0.414,-0.24],[0.416,0.24],[-0.414,0.24]],"o":[[0.417,0.24],[-0.414,0.24],[-0.416,-0.24],[0.414,-0.241]],"v":[[0.749,-0.435],[0.753,0.435],[-0.749,0.435],[-0.754,-0.435]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.734,1.823],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":34,"s":[100]},{"t":50.0000020365418,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":56,"ty":4,"nm":"ring light 7 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575,448,0],"ix":2},"a":{"a":0,"k":[34,20,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-10.415,-6.013],[-10.347,6.013],[10.414,6.012],[10.346,-6.013]],"o":[[10.414,6.013],[10.346,-6.013],[-10.414,-6.013],[-10.347,6.012]],"v":[[-18.732,10.886],[18.856,10.886],[18.734,-10.886],[-18.855,-10.886]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-11.716,-6.764],[11.639,-6.763],[11.715,6.764],[-11.64,6.765]],"o":[[11.715,6.764],[-11.64,6.765],[-11.717,-6.764],[11.639,-6.764]],"v":[[21.075,-12.247],[21.213,12.247],[-21.075,12.248],[-21.213,-12.247]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[33.944,19.791],"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":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":37,"s":[100]},{"t":53.0000021587343,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":57,"ty":4,"nm":"ring light 8 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[559,457.5,0],"ix":2},"a":{"a":0,"k":[2,1.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.417,-0.241],[0.413,-0.24],[0.417,0.24],[-0.413,0.239]],"o":[[0.417,0.24],[-0.413,0.239],[-0.416,-0.24],[0.414,-0.241]],"v":[[0.749,-0.434],[0.753,0.436],[-0.749,0.435],[-0.754,-0.434]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.385,1.57],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":37,"s":[100]},{"t":53.0000021587343,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":58,"ty":4,"nm":"ring light 9 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575,448,0],"ix":2},"a":{"a":0,"k":[13,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.992,-2.305],[-3.966,2.305],[3.99,2.305],[3.965,-2.304]],"o":[[3.991,2.304],[3.965,-2.304],[-3.992,-2.304],[-3.966,2.305]],"v":[[-7.179,4.173],[7.227,4.172],[7.18,-4.172],[-7.226,-4.172]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-4.49,-2.593],[4.461,-2.592],[4.489,2.592],[-4.462,2.592]],"o":[[4.49,2.592],[-4.461,2.592],[-4.491,-2.592],[4.46,-2.593]],"v":[[8.077,-4.693],[8.13,4.694],[-8.076,4.694],[-8.129,-4.693]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.944,7.791],"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":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":47.0000019143492,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":59,"ty":4,"nm":"ring light 10 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[596.5,448,0],"ix":2},"a":{"a":0,"k":[3.5,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.987,-4.45],[0,0],[4.804,4.285]],"o":[[5.053,4.445],[0,0],[4.74,-4.289],[0,0]],"v":[[-2.305,-7.343],[-2.198,7.343],[-2.686,7.061],[-2.789,-7.063]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.626,7.781],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":47.0000019143492,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":60,"ty":4,"nm":"ring light 11 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[613,451.5,0],"ix":2},"a":{"a":0,"k":[3,3.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.514,-1.09],[0,0],[-0.049,1.2]],"o":[[-0.239,1.116],[0,0],[0.403,-1.181],[0,0]],"v":[[2.452,-0.438],[1.319,2.878],[-2.452,0.701],[-1.774,-2.878]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[2.92,3.226],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":47.0000019143492,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":61,"ty":4,"nm":"ring light 12 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[575,445,0],"ix":2},"a":{"a":0,"k":[18,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.265,-3.616],[3.828,-3.573],[0,0],[4.679,2.702],[5.532,-3.215],[-2.407,-3.035],[0,0],[-5,2.905]],"o":[[5.379,3.106],[0,0],[3.157,-3.152],[-5.567,-3.214],[-4.298,2.498],[0,0],[-3.062,-3.475],[6.222,-3.616]],"v":[[11.203,-3.913],[13.538,7.529],[12.239,6.779],[9.95,-3.185],[-10.146,-3.185],[-12.976,6.052],[-14.303,6.823],[-11.406,-3.913]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.009,8.156],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":47.0000019143492,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":62,"ty":4,"nm":"ring light 13 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[553.5,451.5,0],"ix":2},"a":{"a":0,"k":[1.5,1.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.416,-0.241],[0.413,-0.24],[0.415,0.24],[-0.413,0.239]],"o":[[0.416,0.239],[-0.413,0.24],[-0.417,-0.24],[0.414,-0.241]],"v":[[0.749,-0.434],[0.753,0.435],[-0.747,0.435],[-0.753,-0.434]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1.464,1.779],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":47.0000019143492,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":63,"ty":4,"nm":"ring light 14 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":41.0000016699642,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[592,435.5,0],"ix":2},"a":{"a":0,"k":[25,13.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-9.833,-5.678],[0.223,-6.228],[0,0],[6.142,3.545],[10.301,-0.527],[0,0]],"o":[[8.231,4.752],[0,0],[-0.847,-4.629],[-7.913,-4.57],[0,0],[12.675,-1.318]],"v":[[11.917,-4.7],[23.932,12.556],[19.211,9.83],[8.728,-2.846],[-20.117,-8.906],[-24.155,-11.237]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.74,13.805],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[100]},{"t":47.0000019143492,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":64,"ty":2,"nm":"percentage","refId":"image_24","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":70,"s":[0]},{"t":77.0000031362743,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1136.5,434,0],"ix":2},"a":{"a":0,"k":[21,12.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":65,"ty":2,"nm":"level percentage mask","td":1,"refId":"image_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49,"s":[1094.625,425.5,0],"to":[11.75,6.875,0],"ti":[-18.333,-8.458,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67,"s":[1165.125,466.75,0],"to":[18.333,8.458,0],"ti":[-6.583,-1.583,0]},{"t":96.0000039101602,"s":[1204.625,476.25,0]}],"ix":2},"a":{"a":0,"k":[46.5,21.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":66,"ty":2,"nm":"level percentage","tt":1,"refId":"image_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1205,476,0],"ix":2},"a":{"a":0,"k":[46.5,21.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":67,"ty":2,"nm":"Phone","parent":4,"refId":"image_26","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25,"s":[0]},{"t":44.0000017921567,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200,60.5,0],"ix":2},"a":{"a":0,"k":[239,150.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":68,"ty":2,"nm":"koin","refId":"image_27","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":52,"s":[0]},{"t":56.0000022809268,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56,"s":[883,319,0],"to":[136.967,0,0],"ti":[0,-67.379,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.745,"s":[1072,436,0],"to":[0,67.379,0],"ti":[136.967,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":101.019,"s":[824,558,0],"to":[-78.967,1,0],"ti":[1,50.379,0]},{"t":128.000005213547,"s":[595,482,0]}],"ix":2},"a":{"a":0,"k":[23,15,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":69,"ty":2,"nm":"button line","refId":"image_28","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":40.0000016292334,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848,238,0],"ix":2},"a":{"a":0,"k":[2,3,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":70,"ty":2,"nm":"outer button","refId":"image_29","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"t":40.0000016292334,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[848.5,238.5,0],"ix":2},"a":{"a":0,"k":[5.5,7.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":71,"ty":2,"nm":"line 2","refId":"image_30","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[0]},{"t":76.0000030955435,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[785,254.5,0],"ix":2},"a":{"a":0,"k":[59,14.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":72,"ty":2,"nm":"line 3","refId":"image_31","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[0]},{"t":69.0000028104276,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[836.5,253.5,0],"ix":2},"a":{"a":0,"k":[4.5,3.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":73,"ty":2,"nm":"line 4","refId":"image_32","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[0]},{"t":59.0000024031193,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[829.5,253,0],"ix":2},"a":{"a":0,"k":[11.5,8,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":74,"ty":2,"nm":"button","refId":"image_33","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":76,"s":[0]},{"t":84.0000034213901,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[722.5,268,0],"ix":2},"a":{"a":0,"k":[5.5,7,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":75,"ty":2,"nm":"line 5","refId":"image_34","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[0]},{"t":108.00000439893,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[788,244.5,0],"ix":2},"a":{"a":0,"k":[18,14.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":76,"ty":2,"nm":"strap","refId":"image_35","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":84,"s":[0]},{"t":93.0000037879676,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[743.5,246.5,0],"ix":2},"a":{"a":0,"k":[4.5,4.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":77,"ty":2,"nm":"strap","refId":"image_36","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":84,"s":[0]},{"t":101.000004113814,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[751.5,241.5,0],"ix":2},"a":{"a":0,"k":[4.5,4.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":78,"ty":2,"nm":"strap","refId":"image_37","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":84,"s":[0]},{"t":110.000004480392,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[760.5,237,0],"ix":2},"a":{"a":0,"k":[4.5,5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":79,"ty":2,"nm":"line","refId":"image_38","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":95,"s":[0]},{"t":109.000004439661,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[745.5,288,0],"ix":2},"a":{"a":0,"k":[24.5,24,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":80,"ty":2,"nm":"outer button2","refId":"image_39","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":95,"s":[0]},{"t":118.000004806239,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[717.5,314,0],"ix":2},"a":{"a":0,"k":[5.5,7,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":81,"ty":2,"nm":"outer button","refId":"image_40","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":95,"s":[0]},{"t":118.000004806239,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[717,313.5,0],"ix":2},"a":{"a":0,"k":[2,2.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":82,"ty":2,"nm":"text chat","refId":"image_41","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"t":52.0000021180034,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30,"s":[649.5,271,0],"to":[0,7,0],"ti":[0,-7,0]},{"t":52.0000021180034,"s":[649.5,313,0]}],"ix":2},"a":{"a":0,"k":[35.5,31,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[0,0,100]},{"t":52.0000021180034,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":30.0000012219251,"op":132.00000537647,"st":0,"bm":0},{"ddd":0,"ind":83,"ty":4,"nm":"Shape Layer 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[659,371,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[91.427,84.81,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[479,297],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.988235294819,0.817716240883,0.817716240883,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[189.5,77.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[105.01,86.348],"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":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":49,"s":[100]},{"t":108.00000439893,"s":[0]}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0},{"ddd":0,"ind":84,"ty":4,"nm":"Shape Layer 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[640,360,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[479,297],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.980392158031,0.926611959934,0.822760462761,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[189.5,77.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[105.01,86.348],"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":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":49,"s":[0]},{"t":108.00000439893,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":300.00001221925,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"phone","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[94,231,0],"ix":2},"a":{"a":0,"k":[640,360,0],"ix":1},"s":{"a":0,"k":[66.875,66.875,100],"ix":6}},"ao":0,"w":1280,"h":720,"ip":0,"op":300.00001221925,"st":0,"bm":0}],"markers":[]}
diff --git a/app/src/main/res/raw/misc_illustration.json b/app/src/main/res/raw/misc_illustration.json
new file mode 100644
index 000000000..9ac49be4e
--- /dev/null
+++ b/app/src/main/res/raw/misc_illustration.json
@@ -0,0 +1 @@
+{"v":"4.8.0","meta":{"g":"LottieFiles AE 1.0.0","a":"","k":"","d":"","tc":""},"fr":50,"ip":0,"op":275,"w":1000,"h":1000,"nm":"App","ddd":0,"assets":[{"id":"image_0","w":529,"h":135,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":179,"h":29,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":554,"h":69,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_3","w":628,"h":314,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnQAAAE6CAYAAACf089OAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO3de5AcR53g8V+2x3pYfozEcpKRdZJXVqwcMJKIMAbJdzC6ZYkV/2DLhj0wFwgONtgLAvzPnfjvvBEX7HK3EUfcGSLu2IeIXbN3rG3s47ABQ2hshWUvaI3lg7U3DLZk6zEWoOdopJHlzvujq7uru6u765GVlZn1/USARz09XdlZWVm/yvpllggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAUKmqCwDADq31zLDfKaWmS9jeOhHZM+TXzyml7kn5OdMisq7vfyIikyKyOeFPDovIIRE5LSLPRf+bUUqdTrGtLSLylTTlMix1fQAAgBrTo91ewvbuGbG95wyVO4s9uhUcjtrWtMHtZTFTtL4B1Fuj6gIAcILxgE5Edo34XdLIWtk+ISJ7tdZf0VpPVrB9ACgNAR1QA+NGpkTkdpNBjm7duqwiaEvjCyIyQ1AHICQTVRcAgBOuk9Yo3R5Dn7fL0OcMc1haZW3nycVNSyvPblpE1g75+80i8nD0HgAAAPelzA172OD2TqfYXqoRsiF/e2/Kv71da/3c0BK8qQtPRChSPgAwhVuuQD0kBU9n+v79obRB1ii6NcHiur6Xn0h465ai2xpHKfWwUmqLiHwj8Q0NubfsMgCADQR0QD0kBU8zCa+ZmBzR/xlnhmzLGqXULkkOKq/TJczwBQDbCOiA+kq6xVroFmQ0wveJFNupwr3JLzenbRYCAMpAQAfU16Hof3GbdWtB4LySRrtmhrzX6ixTpdSMtCZT9GmUfusXAMpGQAfUgE6+5Xpakm9DFrkFmTTCN2yEropA6lAF2wSA0hHQATWgEkbDlFLPSXKwtSvPNqKRvf615x5J88gti2aqLgAAlIGADqi3mYTXNuvWwsBZ7Up4zZX8uTZurwIIEgEdUA+J+WrR6NkjCb/alWMbSX8zKqCr4kkNSQFd6ufKAoCrCOiAehj1GK6ZhNcy5dHp1qPF+p/KMO52q9XRsmjUMenJETM2ywEAZSCgA5A0irY2423XXWM+14U8uq8kvHZGKeXabWEAyIyADqinzvIdSqlDInIw4T1Z1qRLGtGLB0qV3tbUWu8Rkfcl/OpeuyUBgHIQ0AGBG7Ku3KG+f+9JeE+q265a610y+Kivb6SY3Vp6Dp3WejJ6Rm3/YsciIk8opZJG7QDAOwR0QPjWpXhP0m3HtI/FGjc6N8yovL7coiDu9mhU7pCIfCjhbQfFzGPOkjVL+2QAAFBHWutpPWgm4X3PJbxvz5jPXpfwNwMjc0PKoFOW37SHdesRZUYM2ca9pj4fANJghA5A256E18aNYqUdnXNhUsRhEblDKXW7Y4sdA0BhBHRA+KYTXjuU8Fqe2667El4byEuLnkoxwORI2RgHReR2ZrQCCBUBHVBPh/pfGDHbNTGg08mP+jo8LHgbwtZadJtF5KfcCgUQqomqCwDAKXtE5L/2vTZshC7p9T0mCzPCN4Zsa520gsTbJXkR4f+otZ5USmVZkgUAAKBaWus9aZP2dfIkB51021UnT6JYN6IcSaZTlD/XpAOt9b1D/jbVdtPKWz4AMIlbrkD41iW8dijpjWlvu+rk260Ho78fJulzS8uhU0rdKyKfHPLrPWVtFwCqQEAH1NOhEb/bk/DadN+/k263jlukN2lmaak5dEqpPdK6PdtvbdKoIwD4ioAOQL80z3bdlfLvXHDvkNcJ6AAEg4AOCF+mUbBxt111a6mR/tutj7i6tlv0fR5J+BUBHYBgENAB4et/zqrI6FuuIqMXGc47uzUp4LO1Dt2wNfZsLZsCAKUioANqaMzkBZHkAGhzNDo33ff6mZQL9iatT2croJoZ8vq0pe0DQKkI6ICA6ZxPYhhx23VaBkfoXM2d64i+z+GEX03bLQkAlIOADghbkRGwpFmr98jgLdxxs1tdYW2EsFnGhwLACAR0QP2cSfm+pJG39/X9O+ujvvrZyqETSb7tunbUYsh50bECsI1+B6ifVAFYNGs1aXZo3J4M251JeK1/tmyZkrYvwm1XAAEgoAPCVvSW4rj8uD0FP9+aaCQxaXRy2nJRAMA4AjogbEVvaY4K6MY96stFMwmvsR4dAO8R0AH1k3oB4DG3XY1Mhsg7EzenmYTXWI8OgPcI6ID6yTqJYdgoXdblSg4Ned1mMDWszLsslgEAjCOgA8I2beAzkoKgzI/6cuH27LjHmgGAryaqLgCAUu2RwduM/f8eSSl1Wmv9TunNxzuUszx/nPDauM9K+puZnNsXaa2lN93/otZ6Xc6g03T5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7FJVFwB+u/Z3P6KrLoPXlIiUXYM2tgFPaKHbdwTHJUxR8sdnf/itextVlwOotTI79PZ5m5MGOhwM5hwsUpn0wA9AMY1m9N9qiwGgsGEnRE4Y8EHN2mnN4tcS1azhjNCMIjkCOsB39GuoEhEKKkHD62CEDgBQGBcUCIWvMWIUyU1UWwr4Tit5QpoiDdHSFJFGQ0mz8+/W0dGIErGbErW7hog0RZrR652rioZIs6mjz9DSaB9djegCpCnSaEjr86PPkPZ/GrGrk2bnV9GmWp8pEv1t+xdRGRvN1pB1Q1rbl4bq5CQ0ux8i0tDRf/v+RrQ0mqr7PpFJrWTzqHpTWp5oSvQdG1H9NFtlatdJ5zt0tt/+fjpWhxK9P/ounbdG9d8eim+KaCXvG1Omg03Rp7vbjn9euz6iuozK0Iz3gM34+9qFb9dr9HP03/Z+aNdB63OjbTVV5zPabadV97FtxdtK+31N6X1vvF47jUO39p1Iwn7sL7zutueG7vu9kka0nYHv2v7bdtZ7U7VuicTadPxYaMbrrV1Hsf3XaZft/dHZiI79oerbfqwNNLvlaYru/d59x2HivhYtzWY3IbMhKqozHdWtiupfiVayRUSukyG0yEHR+nSrDYk0G7FtN9v7WrptqVPvqtsWYuVpRPXa7Wtit5+0TGqJHYcJkxDax2Gr7tptRXeOf+m09Xb/0T1mm03V2n60Q7ttOSqXKC1NreJ9S3+f1mmL0d+06797fHTe3tFp75222fdLiZc39t5oDzTax0m8rjrHRPdzOn1t/KMbOipPvK5U7y2/nv40Kk+7LTfb24xea/Yd37HySHvfNtptU3f6hs7G4u+Lt51GrJ6aEvWNOjp2um2l9/jT0tSx4yD2+e3zj0jfuaT9XZoqVZ8fP+90v2dUxuiY6J6fuv1mp++Ifdf4/mk2Goe6exWAMVe//19PN3Rz76j3nP3Rt6wfe+NmJDdUc/vpHz4wY6k4CNA17//IjNLDLxyaqrF97of/a8ZGWVw9DhGeyfffNd3UjcrbGrdcAUQYsEdR4+6/XrZSChGRifimCNtQosv2mvVIBHSAYRMWT1omudIpwV+NsZGTvYuGy/FNkeeHEk1MuHExTEAHGOfGwZ1O90znSJ+EgPl6sQOMctmRq2ECOqDWuiMqlznZomSXLV7sTNCcYQkjdECgfD2PuNElwWfNMb+3OUJ3mQYNa9zo9QnoAOPcOLgB2xpjIjqrI3TWtoS6s9muRyGgA0zzNJ7ztNhwSHPsGcVmK6NFo14I6ADDXMmnyM7XcgNJaM+ww5WWRkAHGObtuIAjM7XgsXFJdBa5MvMQsIWADkDEletMeKsxesE3qy2M5oyaIaADDPN1ra0J1nlAQeNOKDZb2AQRHSwZu+STpSeVENABAMxojj5zTVhcS4TLEzjD0pNKCOgA4zwdGWDhLhTUHHPL9bLFUWBfR8rhoXZTq/iZwQR0AESEeA4GjBmhs/osV2tbQt11Vjao+JnBBHSAYb6eSIjnUFhD9Z7S+uI7m6Nm5NChbgjoAMN8PY34GojCHY2m7oZwSgZGLGyuqM+ziWGLK0vkENABhrlycGfmabHhjp5l6JJuP1lsY4zQwRZXFpMnoANMc+TgzsrTYsMhjTFnFJbGQYhcGQ0moAMMY3Yd6qo5NiucW64IkRtXwwR0gGG+nka8vVUMZzTGPPqLFoYQuXIRT0AHGObrXSU3rjHhs2bVC3HFkEMHW2xO9hmFgA4wzNN4jogOhTXG3HK12cQYcIY9bjQ2AjrAMH8nF3hbcDhj9Aid1by2Yc3ZnUFEhMKRVdkJ6ADj3Di4s2JEA4WNefSXE8dGxav5I0CO5NkQ0AFl8mk0wIFzLfw2PofOjRMfYNIEI3RADXg0GuDKTC2Ey+Zpj/YMWxyJ5wjoAKscHrFzZaYW/DX+hGI3pANscOXigYAOMCzp0NYDPwAAYA4BHWCBwwNzXW5cZMJjzeboKxari1czywc1Q0AHQER8Xm4FzmiMvnSx+hDzxG0xRI5w0YXDOVrre2L/vL2yguT09M9evHr31/7qdGtcTos0RURU6/IpGsF48od6xna53vvvvni6dUJLLtd//twn/+w97/jbOdvlcl27xsIQ/zbmv9lnv/zVm/7xlVdPt/6lRIkWaSjRTS3SEPnyH33yz7ZO2WljT//sxat337fntDS0qKaIbrf7hhLV1KKlmuMQHhtyyDzzsxev/g9f+6vT0ozamEjvGxvltzWl1HQ4/RS8orX+AxH5PRG5SUR+R0SWiMhkpYUCAMBDSinFCB1Kp7VeKyKfFZGtIrJZCNwAADCKgA6liEbg/khEbhWRpRUXBwCAoBHQwZgoiPuiiLxDaFsAAFjDSReFaK3/hYj8JxG5TWhPAABUghMwcolmou4WkVVVlwUAgLojoEMmWus/F5FPCG0HAABncFJGKgRyAAC4i5MzRiKQAwDAfTz6C4m01vdoredF5N8KwRwAAE7jRI0e0azVvxMmOwAA4A0COnRorb8tIh+SkB5dCQBADRDQoT0q9x3hkVwAAHiJHLqai0blnhSCOQAAvMUIXU1prdeKyDNCrhwAAN5jhK6Gomeu/kII5gAACAIjdDXz3Vfnnvjc/tffW+pGlIjoUrcAAABiCOhq5C/+6dTZR1+bu6b0DRHM1QrxO2APxxuGIaCrgQOzC1NPnjj/7LO/Xsi8v+12HlpYMcU/4Z9cxrVL2i3sCf94Q14EdIHbf3Jh6vuvnnvu2PnLufIl7XYenBThonHtknZbGMNOuVF1bVxYMSkiYPtOzO/ee3gudzBX70MDbbQDlM6niKSSA2J4BflTdWWXNM2O8ae28mCELlD7js/vfuTlc3964c38Dbi6ps+VlkvC7gJhVQjDSZWU3/H+MNV+deE7uFCG8jBCF6B9x+d3P3K4WDBXLR8POl/rGrCoroeJj11aFnXdr44hoAuM/8Gcr0LvsZEPxyGEZlAzVZ0NCOgCsv/kwtSTr89/iWBuPMIv2KFG/As+srsP6ct9VNVeI6ALxP7Zuam9h/PPZq0buklUwad250bwqYf8XB1m/sNVnPwD8fSJSweOXSCYy4tus82Nk6bvQmhPbrQENeTnalRfArjA1XZAABCAv/inU2dfPndpkSM9cDpM/c+Jqf8+qEcNDX5LV090plQ78x+ucHVvENB57ruvzj3x7K8Xyn+cl2lM/R+UqngufAcXyhAwb6p3sKCunuj8502jiKE12EZA57F9x+d3P/ra3HurLoc1PvZpWdD/QYR2gECE3mG7h4WFPXVgdm7qkSPn/3TUey5dvCCnjh/pezWElT3dt/LGDVa39/orL1ndnm+WX3+DLFqyNPPfnZw9Km9cmC+hRH3ia2l7tK72suVvkasnVxT6DGt17Km8dZzc/9fF+PNc3j4hydzpk3L+1G+MfFYRBHSe+vHJN35ycuHNke858OiD8svnfmypRC6ze4a8ZcdOqwHdTx57SF58esba9nyzZuOUTH/sM5n/7uTsUfnBX/43eePihRJK5b8rlyyVD3zq84U+gzoerUgdz3zz6/L6oV8YLlEYVq67qXDbbbt08YL836992Yk2zC1XD3378Lnnf35qYfGo9/zyp38fC+bcm/pvl71gbv2WW+XmrdPWtvfaC88nB3OujfBUVJ7lq1bLtp0fz/x3ly5ekP0P/Y0TnbSrtn/007Ji1ercf2+ljl07DjLKW8cH9z4WTjBneB9euWRpxgu80efMmW9+3Zl+goDOM/tOzO/+4ZHzU6Pec3L2qPzksYdir7g19T9UeYOHvOZOn5Snvn1/8i9di9srKE+7485zW+XAow/KqdmjJZQqDNvuuLvwKLSVOnbtOBilr2vOW8evv/KSPL/3MUOFcoDhfbj9o5/O2CcMP2e6FjgT0HnkwOzc1A9eHZ83x8jCMOX17ssmVxgbwk/LpSvDzEq+rmjfqsqTe9Q7uo1+67fcKuvf+e5Cn2G8jkO4To11T3nr+NLFC7L3b//cYKEqZni/btw6bSwdxsXAmYDOI3+fMm+OkYVhyun1i4wEjZcchP7ksYe83M964IdyvGvHzly3qgZHtxG3ct1NhUehS6ljn0bixlizcSp9Hfd1aV5f5CUxuF+Xr1ot79qx08hnuRo4E9B54uFXzj3/j+Py5p5lZKEKRXOJRhsMQl9/5SVvJ0HYGEjZtH1H7tENf0a37Ucwy1etzjW5JM6vOrYvc9pGrBm4dvvPJdnz5kZzNXAmoPPAvuPzux8/liJv7nuMLNjWn+dSdsDi6pWhK9ZvuVU2b9+R62/9Gt22e4/R1Ci0X3Vs16ICdZz99l9AQ5op3HbH3YWX12lzOXAmoHPcgZMLUz84St6ci5LyXMruJl29MnRBkUkp5M3JyBgxbz5inFt17N7M/9/LWcf5LvJCSDpMZ+PWaVlz8yYjn2U0b66EXUBA57gfz16oPm+uPsd+amnzXExWXaErw8D3YZFJKeTNRYbENdvuuLtwSoF7dezWzP8idcxF3nBO582VcB1BQOewB14++/TPT13MsN5cSdy4gE3HQt88OBI0vIJMVV3hK0Of9mFGRW4HOje6bSO2yLCNvPmIcc7VsWOK1HHx23/hdgze5c0ZOPYJ6By17/j87r3H598z6j3Gr3qrv1AtruT+KTl4KLfiCl8ZhrBfR7itwOiGczldZbbf+KPFUiiSjxjnXB07pEgdm7n952DnYKhIJvPmXnh6prS8OZMz/wnoHLR/dm7qe8fO/8nY95m+6g33Ym20DB2IiVyirApfGQa8X7fdcXfu/Bi3croMGtaeM7SD5atWyy0fvLNwUYKtYwOK1HHQk6MM9Fcm8+ZOzh6VAyWmC5gMqQnoHPQPv154+vTFN0fuZ1/XIXPO+Gc4d5jIJcrK5RlVVcu7+KoSF3O6DCp4Qmwvylx0RmvQdVxQO+czbx07nTdX8aCf6by5mW9+3chn2UBA55hvvXL26RfPvLFs1HuGPr8T2aU8+SXnuZQ79OXiSuSuKLLA7QI5XUOZCubImxuu6BIwzl/kVXhHwHTe3P6H/kbOnz5p7PPKRkDnkH3H53c/cWx03tzI53da597U/zIMz3Mp71LU2VsqDqTcFF3glpyu4YrkI8YFX8cFjoMidcxF3mim8+Zee/H/GfksWwjoHHFgdmHq+0fnx+bNuTXU7tbU/zKYyiXKyq39HFNx3J5mdGNUSySna7hbduw0kndUizrOeRwUqePcF3lhds0DfMqbKwsBnSMOnpl/6tTCZfLmHJI+z8VslHNw7/fcvqVSoTSTUobtDXK6hlu/5Va5eet04c8Jro4NBkNF6zj3RV64N086MufNjdivvuXNxRHQOeC7r8498eyvF64Z9R7y5uzKludirtdv3VJ5tPgHBXhVXmRSCjldwxXJR4wLso4NBUNF69h63pxH/UeuvLkR+9W3vLk4ArqK7Tsxv3vvsfPvHfUet/Lm6sFULlEWRvPmArsq37h1utACt8HndOU0mI+Yv+FQx8mK5nxaz5vLMPPfBXXPm4sjoKvQgdm5qSePzX/pwpujjx5n86kCZSqXKKue/ezRFXLZ1m+5tdAyBLXI6crhyiVLZdvOj49cJDttM6SOkyXXcXqVTI4qFMzZjQTJm+tFQFehg2cuP3Xs/OWR+4C8ObtM5RJlNXBLxaMr5DIVnZQSXE6XQds/+umxo9BpmuHYOq7VxUnvzP8PfOrzhUb6/buYt7eznVlvzqH2TUBXkVbe3MV65805dCCImMslysrrpQhK3Ifp1kQbHnIEmdNlyLY77paVN27o/DvvbkxVx7W6OOnW5LY7Pl4omCvzcVO+c2q9OYfaNwFdBfYdJ29ORJw6EMbmuZQUuDi73lxaJe3D9AvcDt8xB/c+xuh2W6yakvIR8+7Gnrw5xy7QqlQ059P/23/ldu7kzSUjoLPswOzc1JOzNcubc7yjT5XnUlL/5PV+LnG/Fp2UEvzodlZR+12zccrYbapO3ly7HTh0gValonXs87IZXeV1DuTNDUdAZ9nBM288dWy+Znlzjnf0RfNchhrTpzn/CJ9xStqvRSel1GJ0O4flq1YbSynoyZtz/Pi2yUQd+7xsRtmcyZtzFAGdRaw3554ia5uNNeJE53XeXIlMTErxetSzJKae0SpCbuIwJuo4pNt/pl25tDdvrugYYIiBMwGdJfuOz5E355gseS4mbyCMz5ur55CHidGN4Ea3DTAXzLXaJevNDTJRx6Hd/jPtXb+/sydvrkgvGWrgTEBnwf7ZuaknX79YLG/O8Tw0s/SQn83JmudishTjR5BqtbNFpBXMfeBTny/0GUZHtwPaBe/asdPQKLSS1154nvXmEhSt487tv4DanUnrt9w69uI7bdWVHjhXuA8J6Cx4wcR6c7UatFFDfjYj60iQyRJ4nzdXgqKLr4qUMLodyPG2afuOQrMt47iDkOyWHTsL13Hn9p9P7c5S4NK7FuXwCkpTdVby5irchwR0Jfvuq+eyrTfHFVqp8twaMXV8Zs+b86l3zy/NArfjlJ435+FxuX7LrbJ5+w5jn0du4qDcOZ+x9uTt7T8L3dPgxV6xA7H0vLmK+wkCuhK18ubm0+XNMfW/dCYTw7PKt96cg1GE4SL1L3CbR5l5c3rgBz+YnNEqQm5ikkJ1HLWn2uXNZew/zKULWAqcK+4nCOhKciBr3pxnJwwfmewcsgpmdMNgOy26+KpI+bPCHQypx1o2uaJwPmKcmToOq4MzUcchLpsxkpJMzSBN3lxadQmcCehKkuo5rY9y1WuLiTyXvJzKm3MkQjGxwC05XYPaj0QyNQptro4daXgGmKrjEJfNGClDMDf4DOf8FwR1CpwJ6Eow+jmtrYb52gvPy4vPzNgrVI2ZWNssr5OzR91ab86BgRJTtwODGfU0yEQ+YpzTdVxRjGiijrPf/it/5r8rkidJ5d/ZBx590M/AOcdXJqAzbN+Jcc9pVYwslC12IJjOJcqiTleGaZka3SCna5CJfMQ45+u4grjGRB3nu/1X7sx/l5hMjek8ns5HOdo3AZ1B+08uTD15tGbPaXVRVP2mc4mySnVLJey+uUd7UkrRh2rzNJVBJvONRDLUsY3268gxMryOB/v7YUXmIm+08e04fZTT83i6miCgM+iFX12o33NaqzSiozedS5RV6lsqYd896ZH6ynvEfmV0e9DKdTcZHYXOVMdltl+HZv6v2Tg1oo4HG+ywItcuby6Dwby5JOmie6uPp3PkgkOEgM6Y0XlzLYwsGDaiozedS5RFyCuR55VpgdsR+5XR7V7LV63ueb6lCdbreFh7diCQEzGXtuHtenMWmFhcPM7q4+kcaaciBHRG2HtOq0Mtx2Gmc4myKP2WSsap/y4wtcAto9u9yhiFrqSOHW7Ppuq4Lstm5FVp3pyHF8jDENAVdM/eU5NPzo5fb87M8G9ALa8kpnOJsir9lkqhk5/9M6ep0Q1GtweZyEeMo457mcr5FBHy5kYw2WfPnT6ZPW/O4QuKrIgQCvr6i6d+89xvFkYe8Qf3PubW0hVxHo74DLNm49SY209aehNzaP4AaiCgft42X6ruq7etUozQFfD4kfMPjgvmsj+/0zIfWmoK6UaC3Jr6X30J4ALaAUrnUz9fyQExvIJ8qjoCupyeOTF/1/ePzI1c6j718ztrNPW/DFXPaM2ruo7Cpy4qfOwNGBNCP1/JAeF4xaUsHgFdTj86Nv+/ja03V5Op/2UxnUsUPsc7r0QBN2DAlLoeJj52aVmk3K8EdDnc/9KZE+Oe02r9+Z2OT/0vy7Y77q5seRLYFHqPjXwC7+CQDs1ARAjoMnv8tfMP7j9x4a2j3lNJ3lwNG3Smtc1gFeEX7FAj/gUf2d2HYZ04CegyeOrE/F3fP2oobw6FmFrbDOUIq5uEL3xqd24En3rIz9WxWwo39oIpBHQZ7D1qMG8OuaV7REwJwjr2raLq2tw4afouhPbkRktg5n9ICOhSuv+lsyeOj3lOq/W8uRpaNrlCPvCpz1czo9WNHjgdpv7nVHZJ0+wYf2qrKvWoocFvGXrAw8z/YgjoUnj8yLkH95+Ydy9vrmasLU8SQq/J1P9BqYrnwndwoQwB86Z6BwsaRtjhIm8aRcxgayCgG+Op4/N3ff/IPHlzDrjN1ozWuvaaPvZpWdR1v6IX7QBBGOywJyoohVdmXq9D3pz7j8G6ZcdOWXPzpkrLsOHaRbJiyRXylsWjroN8eVAMUCM89Q+B+6oQ0I301y+dOfHMiQs1yJtzu3dbv+VWuXnrtPXtrlh8hWxasVg2r1gsG65bZH37AACkRUA3xONHzj348OHz5M3lZWigauW6m0Y+o7WM8bAN1y6SD65ZRhAHAPAGAV2CZ07M3/XAy+fImyvCQJS1fNVqmWiU854AAAudSURBVP7YZ8reTMfqZRNy17prCOQAAN4hoEvwo6MXwsibs5HOVdI2rlyyVLbt/LiBGa2DCTNJRb7zxmtk+/VXFdwWAADVIKDrE1TeXJnBXDsqKmkbH/jU5w3NaB099X/F4ivkDzdOyg3LOBQAAP7iLBbz+GvnH3z41XPkzcUNG4ErMVjcZml5ktXLJuSet6+QpRNuTwoBAGAc1qGL8JzWISyvwLFp+w5Z/853l74dgjkAQEgI6CIzPKe1cuu33Cqbt+8ofTsEcwCA0BDQSStv7hjPaa3Upu07Ri5PYgrBHAAgRLXPoRuXN6dEZLZueXOWbbvjbm6zAgBQQK0DujTrzS3UMW/OkmWTK2T6Y59hAgQAAAXVOqD70THy5qqyceu0bN6+w8A6c+MRzAEAQlfbgO7+l86e2H9inry5Ug0u6rty3U1yywfvtDIqJ0IwBwCoh1oGdDyn1ZZuELVy3U2yefsOWXnjBmtbJ5gDANRF7QK6Z47P3/XAYZ7TasOyyRWy5uZNcvPWabl6coXVbRPMAQDqpHYB3Y9mR+XNtW4RkjeXz7LJFbJi1WpZeeMGWXnjBmu3VfsRzAEA6qZWZ7wHXjl3fO+x86tGvefSxQty6vgRW0UKhs1bqaMQzAEA6kYppWpz1ts/O3///b88+7Gqy4Exhj07NgWCOQBAHSmlVC2eFPGLMxd//6FD5wjmfEAwBwBAZrUI6P7Pq+e/M269OdcQlqRHMAcAqLvgA7q/e/nsoV+efcO7yR9+hZ95jPuG6WqAYA4AgMADur3Hz983c3x+bdXlQJJxAdj4AI1gDgCAlmDPhPtn56YeOnT+eVdvtRbI/YcQzAEA0KaUUt7dikzr6V8tPOtqMCdCMFfEhmsXyR9unCSYAwAgEuQt12+9fPbQyx7mzWG8d/+zpfKFdywnmAMAICa4oGfv8fP3PfDyOfLmAnTnjdfI9uuvqroYAAA4J6hhjv2zC1OPHTn7/MmFN6suCgxavWxC/s1N18kNy4K7/gAAoLDgcuiOzC98h2AuLB9cs0w+uObqqosBAIDTggnonjkxf9dfv3TW0VutWgIbDC3dphWL5c4br5G3LL6i6qIAAOC8YAK6n59a+Mv8f112wJXmswn6RFqTHt7z1iWy4bpFVRcFAABvBBHQ7Z9dmHro0OlrEn+ZasE3FwIpF8pQjRWLr5BNKxbL9rddxYgcAAA5BBHQnbhw6f6ha86x4JuTVi+bkA3XLpLNKxYzGgcAQEFBBHQvz73x9qrL4AvbT6hYeoWSG5ZdKUsnlNywbEJuWHalbLh2EevIAQBgkPcBndZ6rQS6QDIAAEAaIQRCn626AAAAAFUKIaDbWnUBAAAAquR9IpPW+pSITFZdDgAAgCoopVQII3QAAAC1FsIIHQuTAACA2mKEDgAAIAAEdAAAAJ4joAMAAPBcCAHdhaoLAAAAUKUQArqFqgsAAABQpRACukNVFwAAAKBKIQR0/1B1AQAAAKoUQkC3p+oCAAAAVMn7hYVFRLTWb4jIRNXlAAAAsE0ppYIIgp44Pn/sud8s/PP+17UEErECcIuSVgdjVQg9mgvfwYUyoHrhtYMgAroVi674Ly+dvfTfqy4HgBQqCYZQOvYrRGgHFQohh042/daS+9Zfu+hy1eWgFQMp1PUwCWswYFBd9yt60Q4qE0RAJyLyzt9a/D+qLkP4PTbyoYeD0AxqhrMBbAsmoNt+/bLP/fa1V2YapeOAgx1qxL/gI7v7kEjQR+HvtXHfMPwacE0wAZ2IyPtWLftKlvfT3FAFn9qdG8GnHvJzdeyWwo29APQa1y5pt4VlrMKgArpb3rrk329/27LZvH9P82tz46TpuxDakxstQQ35uRrVlwAuoB2gdBk74KACOhGRO9dd/Z63XTXRHP6O4TXkxskrjbJLmqar8qe2qlKPGhr8lqGf6Krbr/VoUb5gb8AYQ51mcAGdUurw7Wuv/sLSK4bVkOOnm1TFc+E7uFCGgHlTvYMF5URXFm8aRQytARjL0GESXEAnIvL2FUvu+9Daa744PKhzGP0fRGgHCISHfTAsoIMrQ5ABnYjIv7z+qi97G9Shg70H2MPxBjuY+V+GYAM6kf6gjisCH4W/15j6D3fQ2lAFn9qdG8Fn8sz/oAM6kVZQd9fayQ+/7aorR0yUAKrC1P/SUYW5UXVtPoUc7gqhPbnREpJn/gfxLNdx3nP94gdE5IpvvXz20BPH59dWXR50MXaK0vnUwCo5IIY/pNyfqiv7QetpZ/6HELKUx5/2VMRgO7B1WAc/Qhf3kd++dt3HNlz74VveuuRC1WVBSz0OcFgRwrm0kgPC8Ypj5j9EPKre6mb+e1NFpj1/8tLnfvKr+S89++uL11RdlvG48gMwBMPcQO199bZVqvZRwv7ZualTl/R9Jy5cftfPT11aeuFNekb4gkAfqBvidyT56m2rlLr2X334K1rUFmlokaaShog0RYs0lEhTRES3XmtEv2tG92kbWppR02o0VeutDZFGs/VnjYaINHXr5+ik04xu8DaarRNRd5ZCu3lGn9dQIs34yar1+2b070b0f01pbaO1LdV5rSFamtG/G832e1vfr/33zYaO3hxtoynSaGhZPrn8rUuXXDW5eMni61SjcUX/OVOJiNYiSinRscMqXlIlrd+1/9t9T/dQ1AmHZe+3jf4dbb+nNrSIUu33qdinRVuM/b5TdC2iVbtssQ8WLRK9P/5q+/2tP9KitIi0v3PnTd0SK+kvY1QWpaICy6DoD3q+t44+V+meP9E9fxN9pkQ/99SEdL5PZ7Mq4XPiddxTnPa+i32q7n6girbXs+ejDXX3RKxOtBKldOd9Wrr1GVXtwP5tVXG0p/p/1/vp3e8q0WfFfx/bTu/37f6txL6PEiW6Z1/1tq2keu7Zf50vNLgvuu2vr+ajgvfsl6jOtAxuq/9Ia+2T7ufHf6U6dd4ug4rKEN9abH/Hj4N4GWI7QMe+c+c47e2+OjtEq86eiP6utw7bZW39SsWamY4d37GSxtuKjm2/00SjfdkuY1+dd+tR9dRBe9+3/7a/7+jvwdq/1X2/jVdCvD77229Pu+j8u32ctH7WsS+sOttr1128zQ6pJ2nXlRKlW/1Q73fu7QnjbTneB0psPwz0cT2vdY8pndAnddvA4Of0t93efd93NumrzP7tx8va8z21Eq107ycOdCzdmu42nO4xEGvaCduQTt/R/13jddVfjsG91/vd+//V+f1A++m+vXsM9/1hz489R3CsbQ2Wo/c4SGhPsf0X36fxttM57rTueb1ztOjomOlWe3eb7c9ObFvdf//0f/7J0gndUFuUlve1P6nTOGIdaOIO1e2DW/UUov1zuwNL6vi06p5W+qtZRMU6v97fD+xQab1Px3dm9CV7Onkdfaeec0h/r9zqxE+eOi0ipwWopeQ+NlBJp2cEzbX27Vp54LVGI+1iHvR1/mMfYpxanVwGLxoRONfat2vlgdcaqVuUTw2PvjmZT/uwzmy0X44RdNAxOIPjEgU0BlpQCA2K/mlQCPu1Lspsv4OJUag9BzsHB4tUJj3wA5Dd4Dp0dW1QoXcgdd2vdTWsPdMO4IOatdPQTz/21Kzh9EmdQhc0ElMRGtozqkSEgkrUu+E16vWsiCEKnfw4cwJAD7pFhMKjGLEhhYfo9JCf68KjvW2Ka1/ZtfKgHmh3/mMfYhyPwppGo/AIHVP/a8e1Bu5aeVAPPrU7uuZkPu3DOmPmfyqNZpMWbQb16IwADkw4JIT2RPc0KIT9WhfM/E/FwAgdWhzsHRwsUpmY+o9S1LU9hd5/1HW/1lUNZv43msEftTUWUENNg5ZsSs0aDgYx8x+hqUF7NjApAqUhQkElaHi1x8x/wDvccXUZ/SJCUasYkZn/tePaV3atPLCiIY2KOxwanv/YhxinVnENM/9rx7X27Vp5YMXgs1xt86nh0Tcn82kf1hlT/2EVHYMzOC4BAAAA9/1/p5edEoKFt/sAAAAASUVORK5CYII=","e":1},{"id":"image_4","w":234,"h":36,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_5","w":247,"h":36,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_6","w":29,"h":35,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAjCAYAAABo4wHSAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAB+UlEQVRIie2UwXHTQBSGv7eSfeGAO3A6YJnRBt0iKiAdYDpwB4gKcAfEHaQEHYXlGUwHSgdhJgkH2/s42GISgrXCkBkO+i+r2ff2fft+7S706tXrf5ecJknuMYDH7EdvAAwAxoM3HrOb3MWML5blsjgWGqvIe0EBQfejKIACoAKigu4mEQXZAHA09KCcc5qcnub/vDCNh8cEnwr6VIrbgt77TkWszUbD+GbqMRMRHQOgfBPhUmFWVdWqM7SLDc45C7eFIs9FdK5IbQBFRwoT4K1z7l1VVRedoCFlmR3d3emlqgC8rBYPO7KZzQe3gwL45JxbNR23NuNNe6/fb+KJqoyB6a8WAqyK1fV6vT4HENW8mf+rg+RFzlXk6r51j8CrVQ3MVeRNJ2iHHZ0Bjzr8jQqANEmzcN0Oh9fgg9BItd59bQhDO5nfJWl3XjfxH5Rtk6qOQjmbB+igve3+qsgVkIWghs0+J67D0IAPonoJvEjT9KQtzxszEZWrsizD0NArGEXRDGCz3V4cykmSZCqqY4z/mdN+ZQKPQ1mWtYp8EDhzzhXOWdvEUpueOOdmIvIR+LpYLPMm1v4Mdrgyy8UiT5JX1yI+h8EX5xwAW7ZNyny9fja9v+YgVFVfR3FUh7GwXH6eWWsvhsNhBt7u1ksdRVHR/MdevXodrR8v2cG5KTx4sAAAAABJRU5ErkJggg==","e":1},{"id":"image_7","w":62,"h":35,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAjCAYAAADMibkBAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADz0lEQVRoge2Wy3EbRxCGvx6sebAOZAZSBlrbOyBvXEcgOgIiAyEDwhFIjsDLCAxFYPgGY2gXlAEYgakqSweBnN8HLMDFawWwVKYf+112a7pnpnt6uqehoaGhoaGh4d+KzX+ykyzn1uW4CLjyEyFCdA5HJAImm4QQikey97ORzH9cdLlMF8gAlR8DA5MQNjsl8QtQPI65n4+F47NwQgjBtqv/d3Dzn+jiY9rxt7Nw/H/md+Wq4wDtNdl7/xoYhxCKLMu6ZnYGnJbiH0II3ar+SZblEboyezEfM3hrUvHr1dXrLXt0gDSE0K3skQKHwFuT9UdXo16pmwIdsBz0HMDM3kjqhRDGGx2PLmLaO71TSTfe+wFwinFpUQOAmDCoKrZ9u7hD5zK7JvK9K++apDOZvfJt33ny5TQfDMY31XkmPZNzufe+EJwBhWm2h8xymS6890fMCu4AmJhiH0dfsiNJHcHAe59Xnb+v6ji0Z8QBnKMjcQR8FUbLpzrn+Pi4G2M8x+zyajTqrIh7X3vfaYkf//yQFMycWxAdmPQceJZMW+lwPJxU5e12uy/pJagD1g8hLK3vvS+AnyX1qmvfFzceluSSPQW6q1dpyfgYeyZdh3WnAfg9hALs0mQvyutaYWFid9Xp2f7qAcjczarTACGEsYM3ZpZXxysRn2V4u93uRSIOByuHESMkSVIMh0sGvKtraLKTLOeOQ5l1t+kAtFqud3d3d26mM2BxiI6IMKbTaX/TvBDC2HuPaTm1luw2m5h0WB2rvOMOTEi6MKy89ss5bwbc3g6AyWxEgG2NdLluXhbNWr3hcDjJ2tk1kXyTfDxezv1VzOY2rTM/vCrJqtJ+Dcysy6vDxYjMqEuFxWqyyYp9xOgw26H2xO2pGmMZtKpdC+EDHvKZOfXnFF2teOuqc3adHms0nVuX3Y9Ex6eceAiu3CJN06OHzN85HDUntKlwu+Wf/Z6zXY5J0gTg4OAg30H91HCT6sCGYG2kXq0u4ntfyRLVH9a8Gks6q9MrOzTErDm5Z7eY12ptEN7n+EOecbFeNVYoq/ElcJ5lWb5JJ03zo/I9frf2bO1YJNyeDlQi/gDPdywJ0yfTLvDOsP7xcdbN03yR7+1v2mfJwYexmT01i521Z2vXm1ijt0nk6oSfZMeSMB6Mb1rTVooxjtFevf/i/R/ee3nvJaefIGLRvhuNfltrUnYNR23ANzh337m5pLi93d79bMSo7caqlO1m7r1PnVx+h45mvaEbXIXh1n0T54qyadqKpG+TJJlsk3/86Iok2dO3hoaGhoaGfz5/Acl7q3a1kmYEAAAAAElFTkSuQmCC","e":1},{"id":"image_8","w":3,"h":66,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAABCCAYAAABw8HcPAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABYUlEQVQ4jX2Uu5EcMRBDH0AGIU9hyJNzzoVxoSkMGecprWVDBj8zc6VSW7PFJhoA0avPzz/vuD4U/X57+/nLUr4Zftj5DmCAELHKAEKp+YlhXCeAMSQS1O1AyavQvROfjoL7mXGDimp1dgDZ6SjnSgivKp2x1Femci4eNYiC7ZwrAljEuqtRILymlCd1P0DZkNCpQZAqk0dfPTFMDFcjJXmLKwZyUoeYG8rWsDwNHHF9dkYLk24aUWJNpn1CRbUsmOLki7oZVCG2/K3hNrYhJ08LuaoDpKJQ13PJzs0PCKW+LdxazjTTsJTtusuDSmSzrzTuZWqAbhjQ8IrCkRAi6kYs+PbYBSZ5qE6iK3Q1uH6efJiq1wKthr5iVK7Q9RmfyzXjtR6bh5kPWZtp1dJyOjyItFXQiwZVqrWIffrR0pXt2NRbZ8XcII9tGGhNOBYmdcUBBgk8LJR0yyntX38G/6m/vjq/CVV9ae0AAAAASUVORK5CYII=","e":1},{"id":"image_9","w":652,"h":288,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_10","w":333,"h":43,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_11","w":24,"h":24,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABC0lEQVRIie2VQXXEMAxEf4vADLoQDMEQAiEQFkIhtAwCYSEEQiAYQhm0h0gvWsV2nPS6854vljQzlhwHXjjAW2dekmXxAJb/GhiBDPxWVgaGK8RBHCrRJERJ1liIn4IWL0Bs5CW2E3aLjIY8uFiUuEUwIl3t0uSS81liHsmYakITp0q8JmBjT8beCwKwzuAstCbZTS+g+LkgoO15mltNoIQA3M6q1gQ8UWDt8QfwXanR3ueWYGQdlJ/BJ8d3fZEcb26HLInJ7N3Yv0UWg9TMR+Q2ObP/0EqIrJfCm2piMiKtosGQf/WSexE9+p3tsbuz9fwSuXVoifyaOWhL7w8nCpHOJAt5PmH2hTL+ACWaVqSMjDE/AAAAAElFTkSuQmCC","e":1},{"id":"image_12","w":22,"h":26,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAaCAYAAACzdqxAAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABBElEQVRIie2UURGDMAyGv01BJSABCUhAQiVMAhImAQlI6BwgAQlMAXsgPUKvPQLb4/673kGbfEnbpPCX6GawaYFa/c/AAExXg7bivBTGE3BnoV4BegnSyOhUwPEMvBWnWUA5OdbjWIBgBcdsSlCtUWz9kWHMtjcm0Yj9cGTYiWGbmQ8CSM90Eh8TuFFzNftq6BOfkAPfjyJlMjRVgQUcgJd8v1l3pVVZAsXLS51LchRKLs14VAGsiZAD5xSw1/EktpUF7LF1lNVup9hRj8J6xdryC/uX71C1cvTJmlOBuzPQKM/WFBFeKWh/BZqDD2y7+Aoa1bB/8LtfQKMc60Weuqi/APgAOrVV0upiQykAAAAASUVORK5CYII=","e":1},{"id":"image_13","w":24,"h":24,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABDUlEQVRIie2VQXXEMAxEf4vADLoQDMEQAiEQFkIhtAwCoRACIRDMoGXQHiK9aBXbcdLrznu+WNLMWHIceOIAL515SZbFF7D818AIZOC3sjIwXCEO4lCJJiFKssZC/BS0eAFiIy+xnbBbZDTkwcWixC2CEelqlyaXnM8S80jGVBOaOFXiNQEbezD2WhCAdQZnoTXJbnoBxc8FAW3Pw9xqAiUE4HZWtSbgiQJrj9+Az0qN9j63BCProPwM3jm+64vkeHM7ZElMZu/G/i2yGKRmPiK3yZn9h1ZCZL0U3lQTkxFpFQ3At+R+9JJ7ET36ne2xu7P1/BK5dWiJ/Jo5aEvvDycKkc4kC3k+YfaJMv4AIzdWo1j/K/QAAAAASUVORK5CYII=","e":1},{"id":"image_14","w":22,"h":26,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAaCAYAAACzdqxAAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABBElEQVRIie2UWxGDMBBFT6sgEpCABCQgIRIqAQmVgAQkpA6QgASqgH6wGZZMMiy0n70zmYHk7tnNE/4S3QyeFqjV/wwMwHQ1aSvBS6E9AXcW6hWglySNtE6qXoDxDLyVoFlAOTnW5ViAYAVPElCCao3i9UfGWG1vLKIR/3Bk7MTYZvqDANI1nSTGBG5UX83+NPRJTMiB70eZMhWaToEFHICXfL9ZZ6VVWRLFzUuDS3IUjlxa8agSWAshB84pYD/Hk3grC9hju1FW307xRj0K4xXbe1EXPFnVKtAnY04l7s5AozzbpYjwSkH7K9AcfGCbxVfQqIb9g9/9AhrlWDfy1Eb9BcAHrAVV4u4ZLakAAAAASUVORK5CYII=","e":1},{"id":"image_15","w":24,"h":24,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABDElEQVRIie2VQXXEMAxEf4vADLoQDMEQAiEQFkIhtAzCoIUQCIFgCGXQHiK9aBXbcdLrznu6WPLMWHIceOIAL511ScLiG1j+a2AEMvBbiQwMV4iDOFSiSYiSxAh8ufwpKPkCxEZdYjtht8hoyIPLRclbBCPS1S4tLjmfJeeRjKkmtHCq5GsCNvdg7LUgAOsMzkL3JLvoBRQ/FwS0PQ9zqwmUEIDbWdWagCcKrD1+Az4re7T3uSUYWQflZ/DO8V1fpMab2yFLYTJrN/ZvkcUge+Yjcluc2X9oJUTWS+FNNTEZkdamwZB/9JJ7ET36ne2xu7P1/BK5dWiJfMwctKX3hxOFSGeShTyfMPtEGX8eo1aj4viRggAAAABJRU5ErkJggg==","e":1},{"id":"image_16","w":22,"h":26,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAaCAYAAACzdqxAAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABBElEQVRIie2UWxGDMBBFT6sgEpCABCQgIRIqAQmVgAQkpA6QgASqgH6wGZZMMiy0n70zmYHk7tnNE/4S3QyeFqjV/wwMwHQ1aSvBS6E9AXcW6hWglySNtE6qXoDxDLyVoFlAOTnW5ViAYAVPElCCao3i9UfGWG1vLKIR/3Bk7MTYZvqDANI1nSTGBG5UX83+NPRJTMiB70eZMhWaToEFHICXfL9ZZ6VVWRLFzUuDS3IUjlxa8agSWAshB84pYD/Hk3grC9hju1FW307xRj0K4xXbe1EXPFnVKtAnY04l7s5AozzbpYjwSkH7K9AcfGCbxVfQqIb9g9/9AhrlWDfy1Eb9BcAHrAVV4u4ZLakAAAAASUVORK5CYII=","e":1},{"id":"image_17","w":546,"h":3,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_18","w":222,"h":32,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN4AAAAgCAYAAAB9/8beAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAANVklEQVR4nO1bW3LbRhY9twkqrpJTYlYgzgoMl9Eo/AlegZgViF6BtQPTK4iygtArGGkFhv5YbHoCrWCkHVBVUpIR0X3nAwDRePGh2JOZGpwqlcAGcPv2474bQIcOHTp06NChQ4cOHTp06NChQ4cOHTp06NChw0bQX81Ahw7/CUgpx0Q0YeZjAD8rpc7/Sn7WgieljADOm+K/mrH/NUgpXTAuAKxnlYiW8/l8tOGdMYCx3WYM4i9firmXUrpARjcDZ/8JDEDcEuFyPp9fNtJmgCl9icimQLVLAOdKqXjTON0gGB5oPTHgEYGO8nZivgNRBEOX8y9lXv4bkO5vnFhNr7eN9VvCsa5POgP4fDD3BkT6pNzGkFK6rQtMdA7mV3aTEFW6PCCiEl0qXfEJM86klDer1WEYx9ESAIhpyMQnoOx5aqZgXzL3BpvGKKV0oXXEwBFV9goTHQM4g+AzKeU7pdQ0v+f7/oiZc2WyVbj3RUU5baXPzPdJktx+TR72hbP9kQ47wUkAXVdcQnAIoLYRAtcdauZXyKzRV8Crfv/xEkCYdmwyU7cHnGTjbSK6ZOajjQ+B7w9XScniseFzUGptuMcbhfuZOEdmzXrcSv88czWXQojLOI6X34CPndEsePy8nSCldJl5kCTObRzPbp9Dwwu8MPkjidsmxguCEAngOLidzfbvI9OOaNOK2+63oUXuwIbGqLiKAJA4zoiArULnwIGGLhoIn9jwlIiGTDwiplPr8ZPcwoonZ4oXSZQk+RInIKLPBR26YSPO83uAg5d/vGgdc7a2xxkPAOMe6YaPuccDYURojBkLoiiy1s4NgiG05Qlslu01PC8IHSRIACwWi2jL463ufI5sPbc+BwCu6w5evHBcAJjNtvbdTCMMB87Dg5skzXu5WfBod00ppXQzTXKavkro9zWklPfEdDFfzCcN70TINBQzv335Mol/ezy4YJgRNB31+/1r5Job6SIQ6QmAE2gNEKA14HveHRuaqH8Ubg0A+J4/YeIPAACDn1d6NTk4OJjmPGY83AOYKqXOpZQuMU+Yik0sPXnPgi4W8zr/TUjggGwBycDAK9d1h3Ec39rtRDTejW4C260jw7eq2IhTz/NviTKBQOEuzlLFV+pTSmkxxsvFYhZhRzDzgASliiJVFlPbnQQQAZjY73heEMIk05JzTPQ554OB64VSIQAEQTBMkmQMIcbEfAxo6GzkUkow8RVxMlEqXisHy8VcW2Ft0QdwrTL60pNRbnUBQClV2+RSyjETT4jpWOt1GwBco8GF9TwvzJUZE90t5vOhlPKCmEf8+HgMIvT7fUgpa+9XIooMOxo8/82bEYBf7Q1t4YiJP0jpTzfREBDh42M/YvAZsmCdidcaIs1G6c8oB8Ypm0TH6OEXX8rWPqjHo/7BQdTA4xGA957vXwKIbKFLX8QRMX/wPG/HJFNFlRPd5JfffeeUNK3rugMAdmx3gx1hKktGpMtunTDfwpUDUbK09wUBoRuGrX2lCll/Jqbj7Pk6Tetaax0S0QfiQomUnmU6ZfSjIHCHVvOvaNgXzQNo6LTM7xTALzm/FZyAEeXe0BqW2SLmY9/zLwG8z+Ld0vsMRPZ8NQveDgYvdN0BCzHd/iSfSSlrrtb6bmqZygkGI2IgdVO44qYR8x0xXZVoAGdv3vjrzW2sUTHTcTWBUaF3Cktj1iDEToLnVJwHNjQteBChfa/f74+Ke3QFoHBFtig9O/mSCrAY2/e/f3qKduF3X2SW5j7/zcCrg99+i7PsaQ3VWG6bLldKTZnpLvt5z6mV+RmW1SbgyOj+ZH/uNzPie/4EwJndVhMBwhHAJeFzksqaU6MByukdOQ+/j/Pfz7Z4D44zhr1hCTfM/HZ1uPqBmT/CWiQA7wM3GG7p4BrAu16v99bARADQ1/qcrD6I6ON8sRjOF/MRgNf2y72eWQ8KpjaceyL6uFod/sDMbxv6vgfwLnM/3tk32jRwFUnF4hGlYwAAZj7NrFx2j0fW9SUqpsSGU2lm5tD3/ImU8uLAOYhhzQ8TXUU7Jw2eFceXlFAW8/3i+/6tbyk+AFjMFpFSioj4o93eY36rlKLsL7TvOY4YE5kflVKDhVKhUup8tTp8jbLArze+UoqYqESfN9BvhbD2TopPotf7G4DXRLaSpyMinuS/msLVTJG+Xh2ufiCiT/Y9IrOeo5YYbzuvRFSa6J5YjWbzdRwz8TxvSUQ/rZl0eIS19ap18EkpNW7opmTahXia5tdKqVhKeYPMWjJTWDwHgAmcbS4GpvMiVosyn3vtojDzZLFYTDO6U8/3Ji0uRyscx4HWRYynlIo937vL6YjUyk1d1x2wlRA5PFxdPjw649YpdwDokpicMHEaH1NJeOLk6Wm8O8f7l46UUtNM47+325n5GAJ/l1Jer1aHo7ykAaSuMVncJxvy6LNZPeZ84fzhasIteO0Vlb0jGPAOYymXKwukSSOs15qIr+bzxdh6ZOT53m2+jvbaOUigLapMdLdQRd028/TWltTOWTZbvN2QCQUBjPvZrJw8cKopdKFb44HD1arNnSv571r3/yml5PwP5UUorK/BWugAoGcK65Ohmr0r/Sam2zZe25Akdf1HmtbxVy9LFtluJjFdRVG8rNbE9gURXSmlXu+XIn9e5lopdd5LvYbrhtsn/f5jZDeIivexKavped65lDKy11iT/mwJXQPKW7hNrttmuFq7NFmYU0KlLXc3Kz4OiBHZLdVkjJ2z/DOCl210Bqhep6rOrzCisF6VNd/dPdoV5dUW1C/RJ6JlaSG+RjXTqRPp9Xt24mMEAMyFp8DEW0941PYp45qIPgJsu/LupkRHM54v7LPFIlJKhb1er0kAX/n+m8Ibqu6whnly3XAgpYwzD2m3ZEkOU5XsFrTomTo3jfRK+5sba4UM4nIWeRP+zJa7R2Fl3OrNWv1JWMw/c82J6WOeOBEwWRbFAKKa7ROwZ7oaf2FH9+TPYjabRdKT92lgjqM0EVEE4Ierw1Tw2vwgIPXNqJhHAkXz+Tx15QV+AqeuXv/xcYJKDPatkbmGYZYRXLtUxpALIFMqBqXBNXgGjvMwBmht1Ri4J+CcuXeb1R8naBNIIUo+XNK2pVvmt1quabZFxm0ikEUBm19tQUsBfad3YxSTcRS47nBm1aoYSYlZQ2RZnU07rYR1DAcAwjHRfJeCZuXURk3JGgFY8VE1O7UHfxaN5gI6BC7B6aZk5gll/gYxXUV5LFR6rzz51cU1me+2WCwupJQjFGvw/o3vR1/m3+acpBu4w8GLwTKKopp3kp1oKbKCduq1MtdNO04IEbIlPILoYj6fTwEgDN3B42O/ptitDmBPoLNLhd4+MVfalwBE3YgICNcOXfKCfoLn+w2NMkqEQeAFoed5oecFYRB42bUXBkGanWQuu0n6oH/peV4IpLU3nWqpgmYpztqZ3cj+kRhxnvefI3Tdged554Fb1Heqta6qFjQVd6IhOtuVvw00sr6sOI+s+k67m1nuO6kc46rETCULR8xTN3R3czn3DPEc44wfHx5vfd+fvnnjj9xsHaSULhsu8dEjY23mitufiDC/zmtybCqumy68o4ffnTGsw9hVkOmVBEdTUV4pZ9ItWGNXSsVEfJfPOzGfSikvgsAdBm4w9D3vkqmU2W6KbTPs6PaixeIx8EqT/pyaYA2taR0YGmM+ApgkSTLt9w/GwPq84Sv7VEJl614/52Bsr9e7SLQe5yUFYj7VWp9KX94wY0lgPIJOCEDivIiR13yMqZy+qWzesndSu/818b1+ih5Fv9a+Olw1Cl5NHiqupg2lVOx53kci+gCktaKDB2eKHY5G7XuMExAA8REznwmBM6F1cRKmQov+VZzVNEApnmbiD77nj5n4WGtcAwhZcERcHARnwVMp5SURh2zoeJOW0I6OqeRq8JnveyEzHWehztaRGoMxEVvH6fBe6/579LX1errJmXuT9XN1d2RLT5ZV38ZUA5MAgDiOl6vDpxCgmy3a82a1OtzpjFwVs9nsVpAZo1wTTIU8/ZpivVi2iyG2ZLqqFvGr5FZa2qM4XhJxueBPdBVHRUJpL+NTWbGXL5MLYs4Lz2Ci01JyowX7yp3YNYkBvLNDjiRJpqisX2FB0pE7wplWaBwBOOP81Etl/mwsZouIqRg/kB2a2AOZ61jUbxsXhAGYn0vH7KohSi2FW0Ux63sLnrCIx1G8PFw9hdWTJBnuAXyyP1V5DubzL5erVc8llIuRdj8EfHqRJGuLarZMgNjmEjwj076pPsVMJetGFTedWq6B7TFLFMVLkx5msPoT09Dd0eXcEUx0CeBTJZtq37/KitdTuz2O46UhMyaiu9pLlJZtZrPZLRH9WBMg4jsi+nE+X4xQVb42GaZRE31mrvfZAqXUlIyp8ZB9U3VjiH5U6suW5NXuB8G+amovCIIwSRIQ0fJbfWSYfwEBONjnkG+Hrwc3cIdO4gwdAInjYNFQ+G5Cuna9AZC0fnGQr+8OXyTUkB20HsIBNn3hspWO6w4TJx3fHy1fF3To0KFDhw4dOnTo0KFDhw4dOnTo0KHD/xf+DRpxKr8VDWsuAAAAAElFTkSuQmCC","e":1},{"id":"image_19","w":265,"h":36,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_20","w":59,"h":36,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAAkCAYAAAA3pUL9AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAFO0lEQVRoge1YTW7bVhD+PopqCtuAtQi6sINa3RRdsjUfwZ2ZE1g3sHqCqCcwfYKoJ4h8gqgnMLtTRQWgbyAvYmQpARHgSiSnC5EySYsSHbg7fQAXj29mOPPe/BLYYYcddthhhx3+L9TKNizLdI+Ojm/eHL3h5/vP3kt8zHGMxuvXb+zj4+PG/f39l5eQmUIpZfx4dPTL659/mHwZf3lYR6OXcscaQIFo0vxWBRzHacxmsxaANoCz2QwgV8oBwC2F/fnBvBt4weS58m3Dbkb1yAVwAQARifqsDtM07zQNveFw5GbpmV0opdokWyJyvkb2VIAAmvTDf/V+EAzGmxQxbdPRYq0nIifb1WawWMzfBkF1g5VSBgAPwOEGsmvf99vpQlspZ5l9AB9KDAWAQwJnjPm+vjzNjQgRjkWkUUVxQIzv6vVuNdqEg9LHZkMB4MIyLTddaABgmpZL4XojufbtVsWCQTAWETfz6prCK5HaW9HkD4FMc8onrlgFvynVprDoMVOSV0VaoXQMw2gAacxSOgWSv4XahCLnEFxrIkFMGgBaBMZD3w+qKDUajbpKqSaAnp/n8UzbDhBFN1UNzEITtkBZrQnczhcLJwiCiW2aXkT0Aaa3fliv11sAenpCXHAHdrQYLSHOhRz/4/urmzRsu/kcxXzf76zdCMPHbPVMkOJk17FIJ433wWjkKaV6AN5lSBwAvTRmcy4FoCtcZmGtsBEMNiem6grTzb/AdRU+xzEaKFzOaDTyCmRFz2sCq9LDPiDZmDlLHlRPMuVQShlSqzUYRU0RaZJwUvkJpvvzxXoPKODhQTe20dRExlHeawwgubjFYt4heFvC+86yzLFSql1FmRJ0uYzPDyQvAWYM5fX+Yr/pVS07YXlrsAGHQGJsEASTvf25Q6x3JVlmvg+maY6T+vYiEMGUjBtfv//6DJnhdgo9PZB8TliFpOcFk6Hvt2u12k9J/BTjGCRPAHgvZTCJQxGeM+KNsqxeFZ5wQ9P3FJJbFfMPBoPB2B/6bZJltfRQisllC3zfd3zfZ/oA+BVEPmxELmzbdLbJ0vXtN1t2+U+MTREjBgBQeAXgz+weJZ/6nwvf9wOJi7UdCGNtq9yHh4NCpn1avsioWXjlAYmxSqmedXrayu5qcY64V2De1qZtRVIucqFSevIZBIE3kRyfwDafeEQuzEQ4zcq/EE37qJSaWJbVt0zLjaEZACAUJ+lDH1F0wTVQShn2hgYkye65Q0u9aaWxYzTW5QdNxMuuI8JNW8JE51aeI/aApyPeoYicgzjPOMcZJe8qMbbHLCmtKIouLcv6K44RQNc8PQyX4VSDgVjcp9lSW7moaVkuZ3IJAKZp3oVhaKymIpEemO3leabr3wWnp6edGmvt7KRFADVd7y/lL7mnZR1/AVMAv38aDvtbKRPRInJOyiWj6CYib0jeUPg+07umX74dJnINw2hAHmOa5In+6lU7XQ8/feoDee8i5UTTtI/C/NQm4PUg6fp0AFgsDpr1+qyFpa8bFGnKssxAyDuKjDWRPsOwPwiCcZVTAeJHM0DkykC+IkDI28V8z0nXjQYwmxXERVHxA21sn2dvF/vzx0MrozJNyyXlUihXo8LEXwW2bTSjqN5JfgaUDfC3ALq+7/eKG0qpLpJmnsK7ebhnBIGX67Js225GcexCcq0uBDLVBN29g7DrZf6AlBprWaYrwksKr4ajoVvZyhIopQyRWkMHEDGa+BXGxOTAGlVoTdN0AB3cILvUWNs2nTjWHE2LvcHgyVSxww477LDDDt+I/wDX9EIDOUK/XAAAAABJRU5ErkJggg==","e":1},{"id":"image_21","w":546,"h":3,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_22","w":222,"h":32,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_23","w":258,"h":36,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_24","w":59,"h":36,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAAkCAYAAAA3pUL9AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAFA0lEQVRoge1YQW7bRhR9j6bSQDZgrbpwg1oFiqK7EsgMwZ2ZE0Q9gdUTRDewfILKJ4h8gqgnML1TJAWhb0AvUnQpAVbQWuL8LkjZpCRatNN0pQcQ4Az//Plv/vw/fwhsscUWW2yxxRZfCztFH5Trtr87OLg4ePGCf376FPyPNj0JWmvn4OD7n3/69sdx9Ff09zoZu2iwBQMBQZH6Uw1QyvPJ+KKMrIi8Go1GwWP0e45XjytxG8AxAJAxppUpXKWuAXQHo1E7K89sQ2vdFEqDwtdrzJkACEXQm9t2L+z3o03GKKV8kl+FrNbaARAA2C+SIXA+GA6bi7a1eHFd1QPwdj1RAOA+wCOSv1di0y5nUuHG+SJRACClhweIAoAAx8p124u2BQCuq9pSSHKtmk5JOSdvIK8BXCaPXN6/45Ixx2Vn11o3RXiYmwmYiMjpsiyNaTmOUwPS9RRBK28jLmnJOF2AcxEJLdIRoAEgGg6HYTmz4lo2UgzQHQ2H7bKkikCyISL3beBqtjvzwyAce8oLYsb3Xif3K5VKA0A33cbMbweiBWOFAEBhNBqNOoPhsDkcDmuz2U6jrFGWZeXaFImewG0FIuJn20akFQbhGAD6o34AoJuZFQB84D5SJsjv/45YEkEAA5ObKAw3J6aMUfWlduT4Ts2+ee7Yc0T9R+hawHH8GjDNOWdNYsvsPAGAOpCSJdETSdJ3iiMIjpJvrD3WoAzq2QbJi8q0AjBGXAG01hOCveputRUEQamYtZ/fOIj5oIzITkTG2S4HSBNU9XbWAnFVMPaNq9xIa90sY0xu0s0i+wI5/nxzE3qeUy+ldF4ibdvzlXmAlGwQhuPd6swncL5urFAOAbxVCWlnncw6sATbRD8P53GlW1bvRqxwTXCXQYIgHA+Gw+bOzs4PIM+RxHEOTEgHZQnP9mYNAGeAOQPwm4i8Ivlr0pfXT+ConN4CJjms9/5Kbz+pjJqucttCOVkzZl8obSTH0INIM2Rrzaee1roL4ONSv4NccvlvsIhwq1Ai/SLCUxic5QYL/S81ID2r7/IEAZCb6/D53nzjYpBxTo8khUtCSbu6+/Klm/eUSY4cywJgZc8tABvKtKdAAJgH1n6BdLfkQkAp5eelzFLlJmNg4T/BsWXJO630WCm3p5RqmzRdi4gvSR2aRVHmvoPjeXXlLRtxjzQ+f8n22cYKcjp8v7YujoXMyZFsL0pCAKAw5zhjEADLMUvsE/IayNXJR5T8uUaz+SJgz+d1kheucq+F0rMsiRgjnMMGGTcANJeGTNLqB0Byn+Z0egIArnKvb+dVJwyDhYe6AuRsfGbboeu+bMHsNNPT494We97Lkl2uoNZCBBMSrcGHD8ueLh6TTPzGGAIEiBhJhObPJbGs9uLdd/zaVKatrI5v7JsmgA4ADAaDntb6CpmdIeQhhO9WzjvyvN8Pozuys9luvVKZNpBsXYdkXSRZHZLXYiSyYPX+mbP3mHLxgSVY7jgbvX+fuUmNAVRyAjFW0BQg4INO4tXstnq3aIV1l6tUW8gToZyOBvkbfxk4vlN79vlZCwYr2+pucpE/LKDTX3Np11p3ALwBACGv96pVZ7mk9DyvHsf3fyoymFCkc7s37ywuCMADZJVSbZInpJwOnkB2VZ/nLwoC27ajfok/HZ7n1OO4UitzpUwysg0yHhfJF5P1PN8yxjfGBI/9N7TFFltsscUWxfgXsekb/+hQoisAAAAASUVORK5CYII=","e":1},{"id":"image_25","w":101,"h":34,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAAiCAYAAABGIRcbAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAACkElEQVRoge2bTXLaMBTH/0/xMN31CtwgLCnNEOcGHCFOZrptj8AR6DZdmCNwA4d2SrJMbsARwiKbjurXhW0s2QZqYmw51m+DbElPz3r6eMy8R9jB0A9cwWICYJC8YwAAgZQnBoHiMhgAJTWI2yUlhkraL6rj+JcUOdEvAcyxsKRtVn70lEjRByKoQpkBInXcQ3om9amelO3HBKbs2Iosvf4lZFp8EH8X997VS1bd/HcBuPgRuOHZ2Qzg86IOlsrYgDFb3V5OsxWaUUb+z2sw+6XF68vNUo5lj8KJumu2U1loEDvZNcHPPWI3MYwAgAv/l1u4Q6xBaoLO/0BMkycBACHzrDF9LBGMr0M/6AOAGPqBay91MyCOdouI3d6j4MNNLCUgYAIAAkyDQ433CLFUy8ehH/QFyK73/6KuaZLoCwCXNQ3Xbmo6Fhwn9r4s5iClNYp5tGOndMudcNAKo3TPEWmBUbqGY41iHrIBo3TvNCqFRBPHV7fu7dI40h5fxiGLXWIzlnKXT7kCo5gxHWYsjfppyf+UjiGb8L4sBxEAlk0r0Tn23RCO9b7ewBtuvT1dJeRaMPB0vPSWcBLfpQqhOetsHr2rtSDpzCuQbjbGunK5ENkFAIjVl89PfLJ7xdjZMBKm3hSIXWKS4bcTDXMase8RwvdH79M6KsYcHUdsEmqYbYtCbgn8/PvG3UYVbb2vlTeeg0KvGbUqgnaUzWb5SuyqL3Kqj+6CATtiRu86yiWfh1I7zBsWYvrgjXMhwzvX08gPBgjFBARXk5Xprib+6CKTxJpsUpCe+KO3SNVJE4C22UMAM5jS5KJ9p5WazFR0kmX1yUOK1vqXFX2vnk4ETbqaBcXAmpjuV7fjecGgAIB/1S/dqCb9yhsAAAAASUVORK5CYII=","e":1},{"id":"image_26","w":222,"h":32,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_27","w":265,"h":36,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_28","w":59,"h":36,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADsAAAAkCAYAAAA3pUL9AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAFEklEQVRoge2YT27bRhTGv4+i0sIOIC2CLIwiVnfdhUA4A+7MnMDuCayeILpBmBNUPkHkE0Q9gemdKikofQN50SBLGbCd1CL5uiBpkdQ/2mm60g8QpCHfvHlvZt6bNwK2bNmyZcuWLd+L2qoXWmtvb2/vbG/vJ3769Lf/P9r0KJRS1t6LF788f/Zs+vnz56/LZMyVveMYIEFK67EG2LbjkvEZIPOHRKGZITV5PR6M/YfodxyrFUVPPECOAYBRhHq9DlvrSyNGbzgeenl55htKqbZQjig8XKL7CoJAYPRN85/+YBBMNhlj27ZL8qyK4TWR14NxdWeVUhYAH0BjlQyB0+Fo1M7aRvZD27oP4P0KRwGgAeKAjH9PZnMz5pqN861Q2McaRwFAgGNb217WNoAkPoWyysnS+gOAdKsYJLXQKhl4CeAcgnOg+InIaRWdwP0O3C+MBVyRfLdgurBjWVYTSGNWRDpFK+VcgCnJQwCnRixBTMMSxEekMRkNh0ElZ8VoFgLUQG80HHlVnVqpNwm1uUPAxWy26waBP3Ucx4+iKL/qjXq9fgSgl23jRr4nyI5hGAEAUDj5czzujkbD9ng0btaMu6PqZsVFI0UmD/ZsCRS6hVFEOkHgTwFgMBj4AHqlLi4wz8ZXyBxOFqJ7b5hR7FUlMWWIsFVo12Tiulbz+vpHKzS/ToIH6MqwXKuJm2KsjhcTW2nnJSeKCQAE+gIc594epB+ISPOhBuVo5RuMeHZzUwcZoR7VYSt1ZRD9nZ1Zx/eDSjFrXpvWYg4pUhOZRMwL0QLSdbvbnXUAXKzo+0bbeqKUalcx5iEQaIjg+PbWDBzLaVXrtTnDh4siDSB1NvCD6e5s1wVxuqxzmvnea60n6fn2nyJi7Edm1KskbIaPHuc+Iv3An46Go3atVvsZwCmSOC4ZJfsA/KoOz3ZnRwBOgPgEwG9Sk9eM+WvyLK9fAOLge0xknoUFHwwGEwBtrbUnIm/L7wk0QHoANmblIInDzpJXfaVUD8BfpecWFpJLyeAQiDbE7CqMTQKSHNQn920AIuI+brg5o9EoQClPsJS9l/E1DDee8YwW9JwDqbNKqZ7Wr0orlZyR6Wz0Sp3XlmlVYTmtbpx6IAiCKSCFELNtxy2JFcJB0uosU38sYnywlZpqrftaay9OO8QirpD9krJVmXs+muO0lhhxj1LKEsrL/LPYMPyCDstqLotjSlGOjDzXdZvzthQXLo59oBSzyVEghwAOs1kncAAp3slixt4qJzJMhC2SZ7ZtX5LsixgTgAEQguQRIG1IYWWvxkn1AwCwtfaY5gxb25fhzlMr8JMqCYIeiHwtf3B7ex280rrDGO00kc5tMc1+3tl5BbWeKwCdj8OP5ZVeJARAgOQ+gDdkVjqy9J0gIl7227KsJiXuZDIU7v/w5UsbQBcAhh+HfaXUBYCX8/7cNyAflhQcp2nSTZzd3Z21bm7qR0i2riVki+nsiPCSlIkh0qcZVrrHItMcrXlfvMSfjMfj+U2qCeCmZHW0oKwNwAfYWPpvAACSF3d3d/enwcokrrXtifAtyXfDYfHGXwXLcptPnlx3EBsL17G5MfKHEaO77NKulOoCeJPKXd7lt3GK41itOKp7pVIXAK6E0n26E3bzZehKZ21be6S8JeXdcDj2qru5Sp/tZkFjwpxkW2sdjuO0oihqpsfUelnbcUMzBCNOV8mvcdZ2DQNubJh+PnFs2bJly5Yt38a/ybodBsQ8Md8AAAAASUVORK5CYII=","e":1},{"id":"image_29","w":101,"h":34,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAAiCAYAAABGIRcbAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAACcUlEQVRoge2bT3LaMBTGv0/x0GWvwA3CkmE6jX0DjoDbVVdtb8AR6LaZjjkCNzCUCZOZbpIb0BuEZVrbrwsMNv8ybgBL2PqtZEmWn/VJ78keiThAOwhdJaoLYUsIEHJzqK6lACK/QTUH5AnkqIF4NPa9p31VuZ3xLpi6icQDgNdnN7TeLEAMZv5Nf7tgQ5RO8LMHkaA0syoLAUihmgJO3izi7vhrNmvWonR+hD1QvVoQwZ5pZykIHxuM3ZU7UwDQvp26xwgCWEGOQ67/iOqvrhQAqKt4oM0ey4rPbhA2AUC1g6lrg7oZPKezRSlJupptMZ9iMfsUdAFAAWyV9kitHBH1SgqYBN62g7CpyhsE/8FZjDpFo+dXxwGaysgvdWOXciUM4chZrr4yjO2N+uBgWxQjnVm9iHZEKRk5kK4xESLNovBAus44OzHFVOql2IWIUh/f5mh3X3Wj0Ni6GPdVEQp6YSuKcVj3ZSRWFAOxohhGBCuKcTjp6mui2xBLDu3/vk5JRb4vHSeaKwAPug15kaKdXYE/MQJZjH1vrv4yGeo25kUq0NlFUeAIANQv33sQ0MYVA4ifkz6QxhQy/qLVGgsE+Hb/yZsDOefQDsKekuN2SeqgGttl5XH2wV3vKlqvvu59b5iQvh6jXs/lC4JJg+LmM3beqROELYgaADBvl0ulkAVF9e8+vt/ZMnxwoHW+37VwFXVBuADTlamAOX8haRPcXrcKkVVclTHnarL6suF/svrLVmWrhfRuEZB517V59CBLMSshBCIkAJIisjwKBQgyS/Pvsv84Q94W2cjJ7sJGW/lnEAKZk8l45nvDncZT/gEywLnEVDcWJQAAAABJRU5ErkJggg==","e":1},{"id":"image_30","w":297,"h":50,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_31","w":72,"h":33,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAhCAYAAAB6Fu3VAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADAklEQVRoge1Y7XGcQAx98vh/3IFJB3QQOjAlcB04HVDClUA6oATSAemAdIALyLz8WGHrdAtLbBJ7Mvtm+HFafa1WK2kPyMjIyMjIyPhPIe9hlOQZQPnshEj1Hn7swa39QbIAUOtnMQAYRaQ/yG4J4MtBuv4NSDYkZ25jJlmmtSVtDVbpEf6/wZc7kpV+d2tMRSIwzwE6yKmPFKCzcaXy68sVax39CUAPYEK4DhWATwC6v+Tne6LZWlwCVDh6LSKDJZCsAYwxJRr5GqbwIgS383r2QtN9qYc29XvVu5rN6msNsDB9aEKopf0iS7JFOPgFjc0iEWkXhRcpr8V670a6xLXsIjKbV4xkSXLauuqM1EKGejKm/GEoKSk+WsVntzYych8jDnm5NZz3Bkg3mWoWVJ7CySY3zZeCnIRVvCYwcCVQvC7sM8lHpcc6YmFktwLkM3IgWTNkVe/WOiPXRPw/q2zLELzJ+N56P9R2u3x+w23EwIKergX+uubvnD6fXc3OAK0GNrI+r+kk+Rg72MSeK8/zPCiKSKsGW1wWLgB4ADCRrERkBICb0Nks7lzU/UxRIAGGumJtPyEUTss2Gx7L6wfPLmXvVWCoAW3kJElNUeXzJ5ZCuyZr6Ltqw4qsRbTbRvaazKAbTxCRWdtbAeCbW76PKfmAOGSgBdxbzEJnhYah9jyYpRJhnvA4Icwaa9haW8MI4Osr5A57590CAENB60VkivCsncboHClEpHuLMyIy8LLefEZ4JO/JiJ8A7pcfDPVysAx62NjQt/oWW9Drvaz1i8055eKAo880nUp5StXROfpWF/OtvOd1J2uUXhmaHw9mvowHFV/qqpXxNWgw/I/W4F74E/Gbsc5tyW0FqNypk7zc7N4Ht5WptxiBSJHewA9c/0/UAPge4fVjwm7oGHFCaPG7dWp5OP2hrR7ham6DIaU6xkf1gWFCjt9PXKS8x8RwxUrHf1a9A112GZ5C+WJvskFtXvmke+l5nXFjTEbteN9nkkf9OZiRkZGRkZHxMfEbRdQMdsQEh2AAAAAASUVORK5CYII=","e":1},{"id":"image_32","w":101,"h":34,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGUAAAAiCAYAAABGIRcbAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAClUlEQVRoge2bUW7iMBCG/zHZfd0rcIPyiFDVTW6QIxBxgN0jcAT2uVqFI3CDlKLN9pHegCOUl2pVJZl9ICQ2IVUEgSTG30OUOJ7x2IPtCfIQShj6K5s4cQEa7EoYlL0lcFa2uy+WIC1H+pSXI9Uky8lwVjuXLNbIrSJw3tgRPThirdx64ZpWyWvmV1lWtUVtR+4FFAl6A8eLd4HF2nPeCp0vdgO4f1zZSS+eAXR3TOAUjozXzcPAliiZhZ4zPXynjNXIfx6D2b+aZQYAWH6lxH2SZk3mlNHv5zHIOKQJCPz6hdjeO0YAwPBxZRuHNAeD7j4gpvtnAQCiF88as6jrFOOUU/X8GPp/+wAg7v3ArnNT7yZnhCE1RjDEH1MAEAkLtz61V6CuX2btSmvwDsMFdsvX4HxtV6S1sfX5jiXCN9sP+oIr97K1o6EV/4C+IPD3atUvsm4YDomsXfTVSrjk/gZor1Oo5F5zLKvNTqmMXh6LEOngFL3WNgtazBRNSH9bEdq80d8a6Sps6bF86YaZKe0jMjOlfegREmtGZJzSOkz01UI0+aKvQIe+L6N0o182bcjJVB3sTv0T0/Xlq1ODXREr2ggQ1k3bYcjYvnjORgDJvGlLDDsYtAAAEXrOGl3eVz6hQ/s7AIApngL76CuyfjZpzKXo2Jbz68VzNoBybDUYg4Q5JdkETK/h5CE7VZRFX+HEmSdEXjUlFzDsdlm+i9iWCwozfOQHA3BvhsqnXAynwVtiMf0zeSgcGS5ddkd+MEACF9SzISW+5EJyUs9h6oyaNKOm6eQaGOqps3wCUlZDMZUBJjUZR+0nwEQAM4hyC9IXabNyKhIfihcSg7I0oCyRqKRtyU5Oa5X0cUOUPIWeMy/T8B9YptuwVAmf3wAAAABJRU5ErkJggg==","e":1},{"id":"image_33","w":72,"h":33,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAhCAYAAAB6Fu3VAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADBUlEQVRoge1Y23HcMAxcePwfd2CVoA6iDqwS5A5cgkq4EpQOVILSwbkDpQO5AW8+CNk4HClqYiX2ZLgz+jgSL4LgEjygoKCgoKCg4D+FfIZTkicA9VsQIs1nxLEHt/YHyQpAq5/FBOAsIuNBfmsA3w+y9W9AsiO5cBsLyTpvLetrskaPiP8DsdyRbPS7SwlVmcS8JeigoL5Sgk4mlMbPr0esd+MvAEYAM8JxaAB8AzD8pTg/E93W5Jqgyo23IjLZAZItgHPMiGa+hSFehOQO3s5eaLmvfGhLf1S7yWrWWFtcrmtG4NJx1SXZI2z8is5WkYj0q8GLkley3ruQIXMsh4jO5hEjWZOct446I1zIwCfnXDwMlJKTozV8cnNnRs5jJCCvl8Jpb4J0kbnLgipTOd3sovlOyFlYwymFiYlE8ZrYF5JPOh67ESuju5UgX5ETyZahqkY3Nxi9LhL/SXV7huTNJvbex6G++/XzC+4jDlaMdFdgRH5w8766up0JSiY2Mr+kbJJ8im1sZg2Nl3lrFEWkV4c9LokLAB4AzCQbEVmJ2hu7I9njFcBN+O3mK2TAwCvW9wsCcVqxxchYWd94Djl/fwQGDugjO0lqiaqc37Ec+pSuGd/FDQldi+htG1lrtoJu/ICILHq9VQB+uOn7mJEviEMaWsC9xSy0V+gYuOfBTNUI/YTHI0KvkcLWXArPALJcEsFh77xbAGAgtFFE5ohMajfOLpBKRIaPBCMiEy/5pkJ4JO+piF8A7tcfDHw5WQHdbGzYS77FVox6Llv9Yn1OvQbgxheam0plarUxuPGtW8xf5SOvb7JOxxsz5tuDhe/tQcN3XrU6noMmI/9kHe6F3xG/GBvclt5WguqdNsnLxe59cFuddksQiJD0Bp5x/T9RB+BnRNa3CR7JF7y2EY8IV/xum0oPjxm/XmdEOJrbYCipgbFW/ZUTQ4ccP5+4KHmPmeGI1U7+xFBFE111GZlK5WJvskl9XsWkaxl5XXHnmI768bEvJI/6c7CgoKCgoKDga+I3wc8Nc5JBjmwAAAAASUVORK5CYII=","e":1},{"id":"image_34","w":72,"h":33,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAAAhCAYAAAB6Fu3VAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADAklEQVRoge1Y7XGcQAx98vh/3IFJB3QQOjAlcB04HVDClUA6oATSAemAdIALyLz8WGHrdAtLbBJ7Mvtm+HFafa1WK2kPyMjIyMjIyPhPIe9hlOQZQPnshEj1Hn7swa39QbIAUOtnMQAYRaQ/yG4J4MtBuv4NSDYkZ25jJlmmtSVtDVbpEf6/wZc7kpV+d2tMRSIwzwE6yKmPFKCzcaXy68sVax39CUAPYEK4DhWATwC6v+Tne6LZWlwCVDh6LSKDJZCsAYwxJRr5GqbwIgS383r2QtN9qYc29XvVu5rN6msNsDB9aEKopf0iS7JFOPgFjc0iEWkXhRcpr8V670a6xLXsIjKbV4xkSXLauuqM1EKGejKm/GEoKSk+WsVntzYych8jDnm5NZz3Bkg3mWoWVJ7CySY3zZeCnIRVvCYwcCVQvC7sM8lHpcc6YmFktwLkM3IgWTNkVe/WOiPXRPw/q2zLELzJ+N56P9R2u3x+w23EwIKergX+uubvnD6fXc3OAK0GNrI+r+kk+Rg72MSeK8/zPCiKSKsGW1wWLgB4ADCRrERkBICb0Nks7lzU/UxRIAGGumJtPyEUTss2Gx7L6wfPLmXvVWCoAW3kJElNUeXzJ5ZCuyZr6Ltqw4qsRbTbRvaazKAbTxCRWdtbAeCbW76PKfmAOGSgBdxbzEJnhYah9jyYpRJhnvA4Icwaa9haW8MI4Osr5A57590CAENB60VkivCsncboHClEpHuLMyIy8LLefEZ4JO/JiJ8A7pcfDPVysAx62NjQt/oWW9Drvaz1i8055eKAo880nUp5StXROfpWF/OtvOd1J2uUXhmaHw9mvowHFV/qqpXxNWgw/I/W4F74E/Gbsc5tyW0FqNypk7zc7N4Ht5WptxiBSJHewA9c/0/UAPge4fVjwm7oGHFCaPG7dWp5OP2hrR7ham6DIaU6xkf1gWFCjt9PXKS8x8RwxUrHf1a9A112GZ5C+WJvskFtXvmke+l5nXFjTEbteN9nkkf9OZiRkZGRkZHxMfEbRdQMdsQEh2AAAAAASUVORK5CYII=","e":1},{"id":"image_35","w":491,"h":107,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_36","w":204,"h":32,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_37","w":82,"h":21,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_38","w":79,"h":50,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_39","w":55,"h":21,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAAVCAYAAADiv3Z7AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAEIUlEQVRYhe2WQW7bVhCGv/+R2bWQewL7BpZPYHpdIBZPEHmZygkkKPE26taxSiWSmqWVE1BOkHWoG8g3UG7goM2mFt90QVGSnaSuiyDd+AcEUIP5h/PPmzdDuMMd7vA9of87gZtwPHxXDfxfNTdn1GrFs9tww+uGk35aE64KgPyFN6ZPH8XZN8n0BnT7aQfpGdKk3diPAAK7HCNt+tAiILpNvKW45DTd8J/IQNtgC6twgu7g7DxXWD9q/Dz9NjK+DA+48qGEaYTsGQrGt40XAiRJuuU/MS6EAaYJ+EyODTPVwbYDP+9xy8rdFu4Ltvaj/Q7Q+S/xQgB/TxmwCXzMLy06atWWJ5QkacdC19PcN0tbd/imjs/riC3QJqYJ5kftx/Hoig95XZ5Zjps5WR3ZrN2II4BkmFZzoykUYbpAzEzMZHZF5Uk/7QmqOEbtxir+8TCtOk9dcpFhG2AZjvGTX+LlCYfJMK16YxPAzOpHrfhK67Va8QVQXyY9SJuYT9DaLJLtIu12+2dbi0rjybecadfErlu2uZuVieUoE1QW/E1gW6XbWl/KuSpmu94rWxUurWP0kCpgi6moB3gedF+mB2WRnbdVq/35A8sAX8Mfl4yEzrwFe+3DmnLZDrJJEd8vi+D8epPZB2QHjrAJEJgyGRXQuZPtuEv7Cay1dF+/c77449aNplNQBXTmzfZy2Y6ws8JRp8fDtAoQIjbKwnYO4oubxHVa8UWSpHVCV33efxvh54DLkO2CNteyotw0uagdNYqOOE7SKosTc5c+WnQGQK87SCPQ/vr75BxmBq4o1snvb2v4vNAR+Gb74XI91LqD8QVQCYoDmzrz4ep+9d9GN4lLXqVb/h4zp/x98dN7ZM+u+63qbB9KYQBBEFTL5zVhCyUUfmuHfr1TZb5axm09vLb3ZNMFpwrggvk8Q3ws+PNeJ0k3rif6vJ9Gy3d46qAKsok32/Nme+Ba1zmuzNDclQTyIF8fVltXSJ5ayV6zXTF577OFks3k1YqfJOkGVogSwRQgbLXii+7LN02cP0Xa/jG0rDtIR96YQkigedPQ/sng7PWTw/06uAgMGbNyuf82SJv2Lz92jhrx9GQw/iio+JDx837aDENmltOxchX5r/OfPoqzJT934+4w7XnPzItmcQ/BKc9gsQraj++PusM3YIVAIHECyFezCF9U3PwYtGvoQXeY1jBV7PMc/hH+0qLgnjKkbQfvF1doCa3PIgfYtRkjiwLIMLYxnbr1uno7aD0ursEyTLtxf+TM9gy9Bj4Ub7GJpBe5bKd9GPcA2odxD9kB0gTPDLOJmcUyTbDF1CyKMMM0keOzr5qjVjzNZZGZvQCdY5oIvQbXktkEv+KY91NME5drtuQ34qmDCLNfJU3AzmV64QPbW9+1d7jDHb4v/gbvZfsY459gowAAAABJRU5ErkJggg==","e":1},{"id":"image_40","w":53,"h":21,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAAVCAYAAADmSqZGAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAB0klEQVRYhe2WMU7EMBBFH4KecINtqQgnIDcgRwgnIEdICd22dCkpt6RMS8Vyg9BRhg4qKDwmfwdnV4ICrZQvRYn/jD1/7PEoMGPGjBk7cGDvClg4Ww+s7dlLdMDnxDMA+b8p+wWO3PgFaO27AC6AY+AJOGfPTq0jnErn+IzxxBrHN8CKUKadjTOzF8a1br3c+FQcz+fAkvEKLPlZMUuJ3RKq6lvnVFKYcLVlFiRVqmuz62YsnIjIl8JXxq0koSGxvr8KXcJnZ1KZLL50wgagNtG1+LXm17p5OKEr4WP80vm1tv5C1hsmkmpt/sIb14TSKU1ML5MK842npGI12d7G5ZZxXDMzESo2F3tpcQuZr6cfdccYG9CMU08lvj7JiEJsETGBnLGMK/dds3nC1Q4tGjvq3tjgbd0PxkvaC/cMnFnwTvhYOi/CrYBrQp1fCoeNa8bmEoVph70ifQq+Cw8Jn62NwkPvVEPYtYafdwo2S8nb9H554dG2JmxW7IQ96UbR/DWpjLF8prqfQjtlIXwrfO3mTHU/vzHJpA5lkQ8T8LAjqXfgHnizOR/AI3DH2AW9/wmhbG+E74FTQrneuHmvEuPA3o/ArUsg6u7Ysx+DGTP2CV/b++/qBTMJ2QAAAABJRU5ErkJggg==","e":1},{"id":"image_41","w":91,"h":21,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFsAAAAVCAYAAAApZJKFAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAFiklEQVRYhe2XT3ZTyRnFf7dkn0w4sbMCzAqsXoHkDbT9VoCYYhMsDIzNlEbIxHJ6aLGCJ+iTMdIKWl5BzA5EEnpgpO9m8J5kWQiaAYM+ie4570ivdOv7c+urr0qwwgorrLDCCit8BgG0/va2gSZbAKRERJASEIkAIPpPHmT97+X05Wnet1QL+dmT/ez4e9n9o2MNgMqkgVUDwCZJYEAmASEA+t/LaWHVlCv5f4NC7EggA7xH6gZABGlK8vcTeh4p/T7nfwmF2CnAAvvy6GDv+GsTWmd5v2gvcZzgGLFlaROrV/n058Nmc2c0z39xmu8lpUbIdYUvlehDYKtY5Knd0zd9CCaJw6f72XA2/+zNSSKqhu7Rfta9jgEQPaAO2k32TvNB1m+d5Q2CBkqb4G3QBY7e0YPrdvX87B/Vtbg6CRgqMSJSHbm2jDuLr5Mflr7qWEMRQ93iuHkvm+X74vSXvUTsWa4jXTpiWJnjrAEoEpbhWyrNqhXtRe+mQ8Wm8N1Y/1cVqF4vzNsGjnPjgiNt22wvtVsky3p488ZwULVUw+7fjAGA2g1BzvIG1nnxm6fkbaTtl2f55qP97BBgPa42Q6oJatN2eYN7mm8+elBwAV508i7o7nysRjV/VL19/q7evLczap/ljfDkfGoJ+7akWvzH9XY7rzeb2SjNh4VVa3V6XnyWigMfkO9N5B8svZoG+9PpL3WA52d5Fcc5gPDrq4rvpE9/uiP0+gv2liN9vbEbv46Kdz7cYni0n3WNXztVsqODPV1VfAf8BiCgMZ0znjcgD5ychb2DPShk0MPpzz918kOVQof0LFV8J9k7yB9kRp9+G209b+fVsM7LiJrpk/+S5B9AF0jbXk9dmFY2gctS+VZY7j4utzVw2Or0HgIkog70K67UyxPw/aODrDE3tdHq5HugjWUn5Hjh/eu7Tm8eH+zN2+bxQdZon+b19mleH48hYJjErqyNKWdtDWJSfJ/A4dP7Rdt68ff8RHFzt1Sg7tLXk/3d43L4st3Ot5rN3RFAq/P2sMjF78Nrw7Q2rpIgxtFL0rZxHUqxp6UrefBoP6svS2sRTvRuDmhQtIKY2tqyAftyyeRhwV2i4NoCFYq2sqzApRsxtM/zzfioy4AN+HJXHI8hFbX1fv58eHw/67U6C2mhevEt+vPjzeZ1rxaulgtyO2nyLhBMZj4ANtrtfLOMJ00T+3YslKBmapS2HJcAlrbmee3zfBNFFSCWKJjG1Gfcn/Mt5OU9HoiYXN54/41DYAN0keydZO9Aai7Om62nlhTCZyjOCnEd1yy2KQMNi08+hL0Tpe+oVHaiUrw3m9movI0UTMxm++e8Pi/kGFhLjJpzFbA0pJmRQsCJ6FcMgtsvO3l3LE7WryA+pi54Y+Z3lrgG2DVLjdZZfmkxikiH0xKIuXuiSk8LmwCZqgERw2b5J+xl501jsYjGpWvFN909+8Cu0e6L0/ykssbJZEw1Juq2Or1Rkvdg0g8LwUYShxNzMgYqk2jYVNOtYqFKb9MK03ZM9C50/STpXcDJYgRri5nOUJh8up8Nke8BGN2tWL/Gun4trmMlcy5ZK06gWBysc4Vy7No193oXTMUbL8htVXpTf61Ob9Tq9Gx8ly/A3/Cv6uggOxF+DSDpYUz0T0k5sIE14orL5lyuoN1U6mZ8F2k7/l3ZmymjYIg1wC4eeYA0kIp3w3VVl7xPwY37tFKUNor2AXC0n3VtZ8UNRBfYg7CeWX6FPUhz3Mf3s56TM6wB8L6M45nsV0UczLjYA1kDp/GNGI72f+zalUzWAOsSazCzWdgtpidGsgdOfL5b7YF0zQV4dJA1CN8rRNdFcT7pWRpHfdq7j/azbtlCXhW+dCH0Otk7R3/9sfu7q7rCCiussMIfCv8FOv79xYlzTtAAAAAASUVORK5CYII=","e":1},{"id":"image_42","w":313,"h":93,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_43","w":74,"h":59,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_44","w":374,"h":126,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_45","w":161,"h":63,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_46","w":173,"h":59,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_47","w":88,"h":19,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAAATCAYAAAAUCsqbAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAC60lEQVRYhe1Xy3XbMBCcdXK3OghTQdSB2YGZCqwOog7MEpgOmA7oCgx3IFcQlkDf8zI5cGCvIEIfW3YunPf0QGB/wABYrIAZM2bMmEFySXL5v4IHkk1GtiDZklx89LzOCa0x7JE3/MPVueNeqL0CkNvdEsCN2rOD5Ipk/x6+T0SJT1kOXo3PhxTMrCP51cz6cwcXCgBf3sn3KSjNbDi304tDCspbrXJYoau2TnRqjS/UX5PsOaInp6+e0tJK389XWKc6qB1I1s5v5/zWib+YzmLsQLKaiLuQn0Cy0HDn02Rcp/xR82gm/EQ59d3upNs4mQwJpeSl+j3JIdEZHDlr6dey7bx9YheJjPqRyNotKrjYHcmGZOXsomxBcuMWWquNcr+BkZRVjgNuo3G+vU1w8pXT2ebyRIIjgZX6lQ/syXYLJ8k2478myQni+ZfspmykU8SNSea1zugH/eLmrRL5FMFDsoGk5uTWXU/M6dnPwRQxgbjoePVWAJ7MrOWYTi4BxFQSpP+EMdceix4ADEiv5PONAPA7sSkBwMwmqyFhCeAWwJ2ZtUfMY2NmQX7jrY3VVHwQQ1TWO/XoHRx85FKYWU/yDkDFMedeA/iZBO99YH33p8by0Em6x7iA7wAG9SOOKSMvZX9NsjKz7A05F04mWOgwEtuq3wKAmQXd9t7M6lMcklya2WaPSqm20iYXiXwD4IpkGU/dBB4w3rweerjfUB1FuxI6TEqb3xQHwDbBBclbAObG2inPSgcNRpIfE2J+AbjhWNsGN4kmUwZF25bkeg85EZ3yeZ2MNwB+SL7GSMASQOdJNLNBRNxjPCivqn3FQQ3gVodqofi7YB4lk0fO2TSZxyItXeJjMbkQbr/+1NhOTD0gvfMZ1A9Op0p0KLJ3/sm5+TeOAy/f6md0Cr5USQNfqo0tu3eBiCtzxE7oH6tXcjc9pDpFeiA+AjxQMc04ERzLyTVf/oRla/4Zr4BLMxEbZurwGW/AvrT1DzUELx3fJfeMAAAAAElFTkSuQmCC","e":1},{"id":"image_48","w":99,"h":200,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_49","w":328,"h":72,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_50","w":308,"h":166,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_51","w":156,"h":207,"u":"","p":"data:image/png;base64,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cLMp436XGZvb6NB5F8MFME9ewm3pUvgmBE5HzfK6ELkh9Th/E8GTwMwPAJaLyJNTb411iXxzApcmFkBk7DByBwA7ANUIISI/QGjNlMewK6UzbRluyPhW+OYFLg9NDdGGI+O/W2E4DS1rDmfyi6upqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqbl06q0evlHUnirt9PEgsOenjA12dfiUmjdKHwB+Th+07OAeot2lToJ1qoxrXien7vJqgat5UWqBq3lRaoGreVFqgat5UWqBq3lRvlmBW584NNJyveycKkyRCl7cJaLuerk8e4in5XrdOfZ5fhN6OLVfbx+0OAkBBEBE8SmPADBLJGJI6AiCIBjc3t5mKkQ9j5uNxqqPyD0A+BQl2FwbEGERhuwy89gk2MfTatVD5i5A2I22/Zfbctl2fB8LZnSZcfzu3eEt+EMwa21UCIIBInZgc68BBDZsniciPzDj1AqtSSNVljdtafCYm2K1GjPnRnwpwt+ytrlX8UoHAHDszuePANA/tGU+MzellANEHBTd2p+ZH67Cq/71HovBE9HQylD8AsC9EKKblcb3/REi/r1IWVTci4kQog+gtXAqZNCmWdQfyHq97jDz92EY/hUA2og4DYLAzautqivpg9oBnBmniDzNixmlorVswjE6jpwitg5uL69iVW3KHNjB/PY6aoU8j5uNFbl8IBBIGYhoDAA/Fkz2AQB+J1p+FuJ2nHfSfA7giOLCBgCAiB9DO3CJqJO3m3rR1s3wXoFTFXEjcErYftd+Q4+9piAxDoIg0UIw8yfLsv7uS/lwZT33r9VLZs9rrm9ufg3DsK+fj8ifVKGHQRD00l1TYNsD/WakdO4gEti9iJXoM/Cv8f92YG/SOY4cQZ6wRRFgphBViOxQRPrpzA+MONOPmb6ALfZvT09P87xK22rhnIhGkN0KHUS96DFUYKZSQ5IS9wrj+EuuoBNRu7FquJwfgAyQ+WMQ2C573PTYa65Ew00LW4oPV7btLtfJga4d2KNEvoC9g7cAABnXGsdlh5wHxMhfhOM0hRBdIUQbAD7vucRnR8qWc3OTaClWq6deXv5FsG17zF5+oF0p5QgAF/oxRFhAFB/sFwD4BZkf9lzi03pdyeSon/cDIj8w8hdk/ppV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","e":1},{"id":"image_52","w":192,"h":224,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADgCAYAAABVcGkxAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAgAElEQVR4nO2de2wcR37nv1XTM2RIh0M6ImlrSdGrcE3ptKIFc6GThBNXgtcHbQBFysNrZBXlJCD7n4Gzkb8uXi+Y8+nPw+mA/LcHWLta/eHd4NaKgY0QryCGAixBWCp6WJHlMFpTYiSTEswHTB4509N1f1RXP+bdM9091d31AQQN59FdXfX7Vf3q9S2CgDj7bv5AirBdYHgBwC5GARgAKEAAMAPgrwBCAWYw/j4FiAEwmJ9TBmIQ82/zO+IzMOsa4l24PjOhjk8M97cJdf8SIIDB7NdgACU87WD8WkaZB6YAAXE9h3he6/tUpIGAibtS+54EBIw6ntGA+3kps/KGUACG+X2Df8t9T5F29zMR84ruPHQ/B/8tQMQ1nWmmZX5nFL9TnP+OPC3OF2pfw5VHDJ8XGPlcAybbC9qNP5ogSyV57gOk9lfq45cTi91rtPMoKDsKkCNNXcxp1woFAAZ2kxIySWjh9J/9t9/53K/rNm1mZ9/NHyCEnSDAf/EjQYpKqFpBwICbhOD0sbczZ5q9VsM5eu5UbhcxcJoRfLvZRCgUjcFmYaQmjv1IO9PoFTw7wHsTrDuTyk+A4L82elOFwlcI/gnAm8feztzw/lMPnDuV2wWGDwAMeb1RU6jWX1EHBHjr+z/MnPb4m/o4dyp3Agzvud5syjCVVZdH5UszMLCf5Dszb558q75Ro7py+mf/I3dGdXIVUYEx3MwX0gdO1jF0Smt9IRDjZxVeKxQ+QAheakvlJ9+bYN01v1vtQ1XzK/ymzNRbYDDgZl6v3hJUbAHOncqpsX0piFcTGebTEOCldFo/U+M7pZijPf8cSKpiQ63OqurMSgNjf3PsnbaJch+VlNB7/4t1Z1ZzNwAS7lCnQhEgBiMHj7+Tnix+vyQEyqzlJ+Jq/HLUx2oEoBVQYpwp+77zDzP0ie0Mrxzm5uwGNuCScjxEBCFD505tTBS/W9wCuGfRVGYHhHfDJyUvkkrjRkkYefOXRUOjlgOcfTd/AKxoYVuMMztqj6bqIkH1kqsxLJFdS+fedL5nOUCKsBNNpStixN2goubgflGzXBkpdYD3Jlg3U2P+sUIOB5cjFUVkz/333AnxBwWATDp/tPL3ZXgIGdKg8I7f7VCpHTR0hxSz7J2HQIxVcQAZGtNWpEE5nXyU2kFDpcTIEdEZFluQm9vDG0tkcHyFf7hd5f+lcgcAgJ59N3+gBalRFKManIBxV2gM2AUAlBC2qyXpUbhRDU4ZgqsVCMgBANAIwwsq8xUysfoVw8PPDXz51MCzmyi+sT2FVMrfezCCFwDeB1AtgEIqPv2kgC+fcqWsL58a+PcHhSBuMwTUsSNM0SIS3CfYWHc/fCEQ+wd+OcG6qYp+PNKUYXr4caIKxp0vXd3uh89kgsmM9ZS+S0twRdMYTZVFoqzaA+582fZNDZ/PFLC+ztDeTvDc14IJVHQAGigS3dyGRrGOr/KFimgaMLzN515vufsAoGWVjhX+Qyq8VrQMHQBFCL0AVd4Kb4QXklBbCz84VIQVF2qVpF8lHVaVqUML6U6KWFDLMP0xXF2H1QnOdhNsHvR/IoyjKQeIO2EKUVXG2wjAp5/oWFniqV5ZYqCU4Gtb/B8J0qCH0wdQtI7WGz/gVQhAGL8glwvmKXRooCSEPkCkUNkREPVXtG3t4owyTjDhDwDooNEo7xBTGeMGMSqPtu2bKXQ+ww9GfHYTxde2BOMBGjRooARgsrtBbSUA2Z9ABqKSR53PELz0Le/dU+92oKPkkNAoEv0nUPiBVzvQzYUQLU6GjMjwDDKkId5oACjxPTKUVAnAEzJEy0oIIGh06NCYweQo74r4pASgqAM5DEHXgSdfGNB1hrZ2gr7ngtq2EvuJMLXsUmoqFI9zIkwQhBPw1aCxRhm/1FQonmLjX/0qoIkwDaDyuYAKcJKOmAgTBDURpumQcSGEfClShMvXhylSZnAeZB9AB6C2RCrkwewTPLuJ4j/+p3BCE7UjTFGbuAoBaHorewCq7YkMcRUC0Fs6CiRxxij8QfLzALX4zwO0ns4sQc9zBD39BJk2oOe5yo6fW2dYnAdWlxgW5/m/SCO5EACXRVH4SmeWoH+IYHCEoG+IIt3m5dcEAy+631l4wDA/yzB3z4i+Q8iGJpUDRHvWdusoxdaXKPq2lH+GxXmG/AYwP1vZiHv6gUw7cV2jbwv/e+d+itVlhvu3GO7fNLC6rJyhWTS9LmGsWobpl+FGz/gz7cDI7hS27S6t6ec+M7Awy8OYakZfiZ5+Hjb1DREMjvDrd2YJdu7nznD/loHbU8oRmkMHOfdufhKEfbv2lxWCSoa/8IDXznOfGcit+3vPgRGKgRcJto66xy2UI5RS78YYyshBjdCgNoTFUwtwYIRi7FWKzqz9PGEY4dw9A3P3gOsfFVzOt3WUYusoxe3LBm5PBSSjHDG8lILGDARkm8IPSWM3kMxnMu3AnsMpDLxo18DNGH5PP8F3jmuY/scC7t+qfzYytw7cnirg3jW3I+zcz1uIqx8WvHeWJcvrsDClEYO8hfdcJSUvWk9PP8F3/1KzjH9xnuHiz3Rc/bDQcK0/YMb1W1+qVADVrysc4Vc/1jH3meFKZ3GYVBOJ8tpvaj2ahsBagMaQLZLdOkox9p9TVqx/75qB6Y/CCDXqEwJYXWaY+kUBAyMMew/zdO45nELfEG8Nkk4te9JAmXxW54EgFSG2jlLsOczX4uY3gKlf6A2N6ARBcSrm7hn41RcM46+l0NPPO8vPdBNM/UL3vUMeH/ToL4YLyhz3HE5Zxr84z/Drs9WMXw6nWF3moZnoU/RtIXjlzzVk2uv5tQzPEHYaAlGFiD5iZAWw4/3qHUt5hABy68DVD+2OdU8/d4LayBAHh58GCXeEtRZn2COMP/wQonkhgGInEM+kcENhyOD5cuA0lNYZf7PYruJ0gq2jFDvHlRO40NACZTgZQs0yZNqB7xznoQLv8BYCNf571wqY+8zA9D/6PVLjrtCufljAwgOe6Tv3U/QPqQrPQtdbEAJJmv97DttDnVO/0ANfWpBb507G+xbB3sv5POOv1dspTgJa9EeB/ICvs+E1we3LRguGOoOtFYSzAbDmCRScxHeBM+3AXkfcH9f1NIvzDLcv89pu4EUVCnF0UNJqF2hxn2Bktx36xH3m9PaUvXRDtQJA9XmAuCoBOODr63kW3L8Vxo6r1o8ACCfvzJYurU4eOiirZIFxVQJwsHOcG0B+gy8zDp7W58v8LLNHhcYT7gCaFsAwqORKAIJMOzA4wg3g02v+b2CRGdHPSXwroAchjCW5EoBg66i9m+v+zWgNhYk5i/HXGovj52dtxYnKy7G9I3Fxl8VUh45asv3h66N27N+67YSN3XfP4RT6thDX5hyv3LtmL5hz7m5rBokb/ArooCQi50T6idhwDgBzn5V7/lp54leeeTe8bbvtOYtm+i1znxnIb/DXgyPJrAR1TQNl0Wr9fWFgxO78zt0rlwG1DKI1BtOZJdZ6noUHDJ9ea7zwcuvAQ/PZv57QfoDWWmlEf/FikmIS6GFZ42+GYEcA9v4hn7PIbwBX/r75UasFc8a7p58kcnkE3xMcE7yYmxCeWvB9yYNzf1qDQgAV2DmestLtnNBqBrGXGAD6hmJjCvXBAA06qIxHZASJcwlAMGt+/BcC6Om3J+zmPjOaCn2c5NZhjQaJPlFrCbE/SsQ5wUb8OsHVilIUdH4D0ohJVUuFkGMBeJr9Xq4hHECOtUG1hQD8JpbDoNUMSgz5RUVoduf+lOW0Vz7kexT8LLElMx86sz5eNCD8LjE+D5Cw0E/Iky9+Ib8DDIxQjOzmBXTvmmGNWPmZ8kXLAby6lfz5VwsdLT0hRtCajMxttOS2dVOyTPty8GuVvDmBPEIAjSPFhphwQzAxkrK65L/jibU1fsysjr+muZZpB7VWyTkQ8Ex3MPeoj+aFALyiQYcWh6asEYo7wJ1ZUtEAnKMl1RgcIXj51RTyG8Cvftz4tsptu+1zBq5/5F3r049niRaNiZvq0Oo5HyD+dGYJ/uAHWtXTXJwKC5UQtWm6DRh/LWWrSngon55+7kRAY7O99TzL1N8VKsyAR5XGWlzeCY5TPjTI6jKrOiuc36iv1lycZ9YwpRCkyrSj7vLJtMNa4SmkGL2S32D4qkp4tzjPsDArQ6G3vtblZ4SpFgAAr+H9GGO/f8tAph14+dWUVZvXe909h1NW/6FRTc/cOvAP/8e744RP64ff+UxwwoSxRFwe5NT/p9cMlyBVPftvd46nWqJMkcQ1QAI+E5yw5dCry+Hcp1iVzeUERVk+MEJdSx3CVKZwLoGQRfk6TBLXB8itV5n59FkIoKITOBrdnn5ijfevLrPQlSnS7UFHAHI7VSyXQlRjcZ7//0x3mecOQAignBOIsEN0esUS56DlGMshWoDghkblti+NUBbQIXlyIibAKp3n2xA1zgMUtbqQXe/pJ7h92cDO/fak2ZVGzvbygZ5+/r8sCwPDRU/ejjBnnOvbCsg6hACK5crH/9Re5Hb1w9aNy/ebgwH+742IAj4ckCF3A1fK6jKz9sKGvQnk6ocFTP2dvZlFLG/2ckqkn/T0E2vCLLwOsFyO1vQ5wXI9Tn08vGdg6yg/VvT2VLj35uf9GugfIlicZy3VIxItIJ/oq3Vaol9nqcpVZSYuBALce2H9kgTxyvxsa40fsDfD81lwOYUAgiZx+wEA917YKEuCNJPyzmwtaZh6iYgUYAUoSdhMMMCXC4i4W2w4iSLNmNu23bWkYeolOCGAMAj/iKRW4njU35oO0JklkuyHDY9Muy2J6I8spP9CAGFgqkK0LgGccJUABPOzzBqNicPhccV2JDbTl+vjOM9E8EthwityVLtSnBMcvhKA4PaUrY8Z9Vag2KDEpNveP3Q7d6bdDn9aq4vqjSBKR0cERoGCLB6nAcT1xJTiNU/O2l9UAFEgGDvwvCk+GrVFddzP4DwxZVtoHeLg87Gc2kPxiThRqf2DQvMeAsVBCcB9B/eJKeVj5qDTEATOOQb+TMwKh8I7EUduJNAGDV8JoBxX/r6A/Ia9lzcOOBfWPdMN7BzXrAWAVwJUmYgWUugCNYp/rrK6zKwT23v6SWj9gaB3Y4k1T8//vnvDTSgL7yIQXfEQKLIu4G8Ycf+Wextj0Gdn9fQTHHkjHeh9RCsg+jZiw43QL9pzOIUjb2iuPQq+EYlBNR0aMQAWWmL9WlAVDNc/Klinx4hWIKiVmgMj/IyyrS/RwO7Bd78R0BRQ0IGlBeC7f6mV9HP6hwK5vfTwPkCo8ujyGj/AO44Xf6a7hkajfIqi2P0GACkN+No33Iv/Fh7w0+N/fTa5fQKNGUx2uwyV3Drfmvid41xcKuiWIEhoUVdm4QHjo16z4alOWEjY+GtQukBlWZxn+PVZ3eUEnd0kVLUGP7h5qYClBQY9x/Dv/1qhkJsyTA8/lsz4ORooCaRii75HLc4z/OrHutWR3LmfYvy1ADqLATN7x6hs/EAgQgBRIiBVoOhnDMBHTS7+TLcmygZepDjyRto6ZTLRRHsbAABA11o+ESY/uXXg12d13L7Mm8p0GzD+pymMv9bcrHHe1CcSOkWN0j/UohMe6xACkB6d9wMUdXB7iis3CMMfeJEfWH37soF717yPoohlyI12rreOUuwc57IqCw94n0XhnZAcQMIhgAZYnGc4/7c6do6nsG03H8ffuZ/Pst6/ZeDeNcOTto/XtfiZdm74I7vdh3D4s6kliei1HCCeSgDNcnuqgHvXCnj5VXueQMweL84z/PYWH2b0Q+gq0877HgMjxBLPFSw8YLg9VUikpqcfaHwxBKmiixIvw/WT3DpfSn39owJGdtstQk8/Qc+rttbn4jzD4jywMGvgq6XqCmyZdlupoqefoG+IlD2/t5HWJi44dyA3jQaQc6dyk2D4trdf1tACTCgDI1xraNBc5lANceiGcJpa8EVsDHOfGYmdtfUbg5GDWmMeJX5F0LASQAx9hote8Zahf4igb4iip7+8/lC6rbI+qXCOxS8Y5h/wmduGjT6mee0XGqtHE6ksjSkBsMZ+GjnmZxnmZ90zxz399pBlTz+xpMmdRxb5rhYX47z2IxwKdRg0eRGrG2fMXq3j6mucG2OazyMpZFEqE+PKqyrK+ENCk+Kg7MrIYQhypKI5ZHgGGdJQhJ5QbVBvxE8IoDW0Ig3Vnc48J1iGzEkScggBJIMatq0headERhtVVn6i636fEqnKJ2BUa+03/vYAVPmUQdUKsqJpqhMcAqpWkBYdQW2JVCiiAWVB1lCq9VfIiGmXpi6QVyv18P1Etf7K2yODZZd6I6NAibJqD6h8iR5e5dFjoASgUAj4TLAXF4iDEoCiIeJZ3A2FQIr6iFcTGa+n4ejQQEni5gFqFaVfRR3POjNOaAhMGU5mahmmMtykYCrDyV/gcqRQjQDEDl2PxknxcqTQuVGxQSEARTjUmdfmKZFy1K/RoDEhgAZ/GjNCrAHqzGvzlMhoVU1Rs6No5W6QVC+5VpVr5IZB425QUXNwv2hVuSZuEFR25HBwOVLRHPU9AyWBHpIXh4xMIgkRAtAAjQVqpK1SArDvu/eIgbSpxrZpgGH5CUF+A3g0QzD7CbEOk/abzcMMw2M8b+9+TPDkYTB5kW4DRg8auHWJBvYszSOpEIAOaGhYGlFW3A/z/DDP6vwG8HSOoKOLIdvLnWH4ZWDq/RTWVvxPxfZ9DNlefu8tO9CUA6TbuENtGmSYvuCOWkcPGhjawQAYJZ/Fg2DFTbWkCPFdPU8tI+zoAvYeNZDtZdi+r0nDKVM+HV1AtpdhbYW/3jzMMN34HdDdxzB2iI9WTF9wf3brEgVgmP/HkWBr58gNg/rB2gowM80ztjPb5MXKlM/mb/A8fTRDsLZi1+BBkN8Api/IFv5Ex6bUOcFlGNrB43cRwjyeIfiXKwTLC/XVRjwkAZ6aLc7wywzPDzM8min/+95BhuGXGbJ9DB1d3EGXFwhuXqIYHjPQO2h/d/x13hLMfkIwe4dgaAfD0DeZ9ffoQQPdfdz5hJMLOrqAb32X//43/0At5xwe42FURxes/tHdj2kToWFUYmodgY4ByUpHF7B9n21ITsYOGRg7ZKCji+HpHMHyE4LnhxnGv2cg21e7phDhj9XRvsOvX6kFGD1oYP/3DDw/zA/LeDpHkG7jfZf8BtDdB8sRAd532TTA0JHl73Vk3X+vrRCzf1M6wbP5G/y76TZYxj/+uoHte02HneODAkM7GF75i0LNQz6ij9bM+QDRYvQgQ36DF/SmAXN05optoAAv+KEdfKRo6n07rNi+jxvJSwcZpt6vnlnO8AfgNbmzL+BsBTYP85ofAG5NUleNLWrjqfcpegcZ9n+PG/T//Z+pqvd/9K8EowdMR+xjrlZLtEziPsNjvB/0eIbgynm7D7H3CHfI0YNx7VibJOmc4Gwvs2pPQUcXXLWcc9jSGVPf/ZgbjKg9qyGM7LHD0IXRP1/UCmzfZzticbjSaPixtmLfW6QFKG2ZAFjOd7OoAy3+rt1viXbsrOkJ6gNc/rk9CrTZrN2GdjB0Zg1Mvc8LXIQa2T5WEu6IWry7j1Uc0hRGVnwN4TTFo0Hiu7Of+FsPzd7hYdvmYYZbl/h7Q9/kLcijGe7c2T7uzPkN+7NiaodA0Q4ddCT0oOxHMwRLCykc+kEBmwZYSaggYmKviPCn0jXEaNCjGYLeQftzv+chhJF3dPEO9pOHxA5/rvPnzLTZaWr0eeNADCfC6mNtBVh+QpDtZejsApYX7M9qxdmVEEZ29wqxRoDENIEYCRrawUwHdMf7fjvB7B1i3TNnOsPyk9KRrOUnBBd/mphI2AVXhahCnP0i3WaHICLeF0bYyJi9M/yZmebh1pOH3BGePLQ722K0J79h37dSCNIMztEn4ZjODr9wwGwvH/70h2i1JHqtM8Ki9Tj109EFfMucWc1v2MYgDGTsUPkhz2oxsQh/Hs+UX1/0yPG+cDARjmzfy1wdVpFGQXFrUQ/LC3wIt6PLbpmcQ775DbuzvPdooeS66bZ6+gDFRKvK5CfFJ2QphBgGLa75nbOoM9MUm4f50OArxw08nbMLNNvLMHOdTxCVQxhZpcku8dnQDt45nb1DXPcbO2Rg+z4+ji/SKEKx/IbdCX/lLwpYfkKsia9qzEwTjB3izzx7p9Qxb16i2DRYQLYXOPSDgut5Nw0wXD1Pqz5PHEj9ySs/OgHghRanIzB6t3DDae/k/6c0YPELgkczBNMXUvjysV3ARgGY+5TAKPAlEtle/puOLv6bpw95rVpMRxfw3NcZ1lYI/uVjCqNQ8hUAgL7Br5vSuEEaBeC3NwlA+PviXikNWPic4MvHttE+mqFItwO/+yz/93iGp6WzC8i0o2za1lYIfm8z///frhOsrbg/z28Av71J0d7J7/+7z9ppeDpHMP+58zfxO3GbgPyEnDuVmwTDt1udGIWsNGH4kvsMZYWDkdsSWZH4R3EtIsZCAJpXcVzPyKcEEEWi9mhRqYv4IXmBIqcSQNSIikE1SuvsQG/tWqC4F6yiPlplBxrgXA4dB3OU4RlkSIOiPjSnOG5ClAACp1VCAIpGCFAeXVIlgFgig+NHDx3SyqPLmSqFSUyKR9OkPSdY1WhSE5PiMYdB/XqamFQLiuSgNXROcCViUi0okoPe4nkARUyIauOfpE3xAN8euH2f4XnDy+bh2pvhZWP7PgN//FcVlqXWhYc8imjjr+laI1siJV/iV4aOLmD8deemj1LpEwF3EmZtlE+38Q0yd6/QEuWGeBP/Z9UBaN5br+hlzNoK34zyeIZvTxweYxg9YFgbU5xsGnRLp+Q3gIs/DUZAV1qcdVz06ru60ZAgVQineOzMtCkelXWXrhDAAoA//iu+Q2rqfYpDPyjg7hW+G2z8dQNLC1yxbdMA3yV26xK1ZFbSbXyXmXCsdBsX4hVO9XiG4DfmLrShHVyeJd3GN6f/5oJ707pQsOsdtCUTr5ynZSUandcS0orF19nsUJ+78gHF5mG+E82580tUDhfPmveJqfEDYk9wAhGSJGvL7tKd/cQ23Ms/p7h5qXzpD7/M0NHFpcqHdjAcfqOAoR0Md69QLD8hprQi/+7469woL56luHqeYpPZDwG4LCIA0wBRYtii1bl1if8WAP5DGQmT3kFuyE8fEut7ThEusQF/+gK/TraXO4vYp+zcjyyU8erVQY0yNVUh6iN6QwCjB7l0eXH4s7ZiG92Th5WNYG2Fh0WzdwhmrvM9vFM/532EW5eE6jTXG8r2Mtz9mF9LaIWKTrjoWK+uoOJe4+kLFKsrYl8wKVGXA4AtO7ji228u8Jr84k9Tru2R+Q3uRKsr9t+dWVsIVyhVCGWLWnuNo0FtVTsdGrTmt8RHK7PGDvFN6BfPNu77ayulG8yFszgVHIT41J4j5afbpy9QjB0y8MpxwwqlnDjDp+UnBOm28iXVmYV18g0gDJvvaQa4CtzeI4a119c5ojVz3d6oL07SKRYMjia1noEA0KExSgAWvVq8EcYO8Th9+kL5ONoPykmiXPhx+U707B2CRzMpjL9uYPhlhrUV5hpp2r6PG7+Ix519lGI6utzvd/far0XY9OHfppDfsCXWAVs+ReiiVpJ1CYNW6JNQYhTfklV4HW2cxl+tiReOIeL0ZhCtwUtm5xRw6+1k+3joYneY3fndafYjunvdStLFPJqx9X/EsK0zVEq383t2ZN3nHghmprlCXqvDn7CtTYNWbhhU+CFBQ+GNhMNmw2O28BTX/+fvi1EeJ0L4dvteht5Bo+RzL4iO59ghA4ffKFjaPnev8P7AK8cN13eLRXKFyO3YIQP5DR7mOIdoRV7PfkIwtIN3vsfMj4TsI38mYNMA8MpxwyUJKXg0QzC6AeRz1XWN4oYOgJx7NzcJ0rwsiszyWh1dvFNaTG6jdOQFsEVsl57wz3sHGVaXuc6/UIwTvxPXthWjGXoHee0vQgmhKi2GKMV30218BEeo05ULPbJ9/HoiLq+mTr15mKEjyw0+v05c6cr2MXT3cqcqTrM4f0AM9cpAGPZkMHKQnDuVnwRjShcoJGSrKHoHGfYcMawJP7nOGgsWg5GDLTsiKTkNrRuZjB8A9n+PG/+V87IdtBcOGjNYS6xRDkOQsMPimeaewZrxbWEaWoXGZ4Kjl3D/UEIA/gwHR1MIQIfm54YYhRICCBN/nC4+2qCRR7lK6GhezglW5RMwSQ5FW4Omax4CIFU+ZVC1QpTRVSe4WVTeRRsNlKhaTJFQKGVLjY8BKb9RyIgHuzz2duYGJa5mPP5KAI2hvD0yeLRLymBMNvzrxKDyJW4w4CYAUDDyuXjH+alCEWcIuN1TpHDDfMf5qSJBJLG4GdgkANBjb2dugGC5xemJGPFqIuP1NPVBCCYBUxWCMHzQ0tT4Rm0lAH9IYp0ZJ8jysbczNwAhi0JZTBygHiUARdJhsO2dAsD3/7rtA4C0JAySwyTVCECSIDpOi9fWBlCD2W+GiRzm5tyo2KAQgCIcmsxrxnDz2AQPfwCHA+jPfHUaSHJn2Lvhk5IXSSXEGqDJvCZFFb3lACff6lkCYS1pBQRRsyNV8Quql5xE5Tp77EeZM843XBoYuY5MS1uBuBuURIYQKrKUq8HIieL3XA5w8i2yRAneDC1FCUMOQ5AjFc3RyDOQ88ffSU8Wv1uigvRnb2fOAOx8MIlQtJ5ECgEsd+jaiXIflJUBy+mZEwBmfU6EDyinkw/5hQAMVjj6RxNkqdxnZR3g5ARZAsFRIt2oUFKj6LgSvKsQ4K3j7/zOZKXPKwpBHns7cwOUnQgiUZFBtqosdgRboTHgJ9//YabqyGZVJdTv/3XbB5TgpL/JihCqwSlDNGoFBvzkz3+YOVHre3UV8blTuV0AJsGQbTZhCkXgMPI3x95JT9Tz1bq0sM2VcweIuYtGoZCUZRg4Wa/xAx4OyTv2dknFkO4AAAFsSURBVObGhp4+AIL/3VDS4kA0Wv9EQoCbOT29q3imt47feefsu/kDlBhnADLUyO99pylx4mgqGwdPVPKFLBOwiVqd3Yq/bubW507pJ8CMCQByOIIiMRCQZUZwOtehnT75Vvkx/vqu4wPnTuVOgLGjADnix/VCw1nJRaXCSzxsloGdzuttZ05WmNzygq9F/t7EYncm3XkUIEfB2AFAjRopmocw/JNBjA8IoZNiK6Nv1/bzYsW8N7HYraWe2UUpewEGe8Hqc1MDMCgMagCGsydOAVOv3aAU1DC12ymFLeNuQKi6U2r9af7Pr2eA8mua7xswAEpBHd/h1zQc9xXXdv6N4hvAoOanhoGSMQQK1zXtlIpfO75v5oHrt+KbhvmGlR2GlQcGDNCS/BD3M8w8sZ/HTj11pMXOH8Ow3zGoYeYR/4VhiDQX5Qt1ptMsK5hlahYoLXo2fi3Durdh5Yjj2lTcE6AwJg2aWvLb4Iv5/+b7bgjrsba+AAAAAElFTkSuQmCC","e":1},{"id":"image_53","w":192,"h":224,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_54","w":192,"h":224,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_55","w":192,"h":224,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_56","w":192,"h":224,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_57","w":192,"h":224,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADgCAYAAABVcGkxAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAbZElEQVR4nO2dz3Mbx5XHvz0Y/CIBCgZJi6IsU1JM5YfyQ4yzpi925LIuVg7mKafdWjmH1CZKNvZ/4P0LrC2vsjdbrvLJJ+WiXOxdrX1yUg6lg1xl0SWJkkVSJgmDBAgQwGB6DzM9nAEGwACcAebH+1SxChgMZ950v/f6dff0awaP+O+V5fMc6jnO+Ukw6RzjHJwxABwMDJxzgGnnakc7wQDOwdjBOeIqbUc4jHsYcACtx8z/y5kux8G1GDg4ZwDjkBjjKuesVSZmkh8WefT/hy4w4zg4kZuu0P48mvwWwW3kBmC5t+naxrNan6f1fuLTwZna83DL/3YpM/M386mMtR4ALFfgLSUkjojb6nXBOTjYA8b4AwnSzZSMW2+cWijCA1jvU5zx/v3lXKWBJUh8CZy/7tZ1ifDS3fG1nstuc85vSk3pyu9+uPDATRkOxbsrfz8fY7FLnPN/dUMgguiFbgxXLp95/trhrzUgV+/+7RyYfAXgvzysEMSI6McF+xAOrDIuvX35zMK1Qa/RtwFooY76NmP4U4DLjvAZh7TF/wOX3rx8ZuHWIPd1zNW7fzsHKXYdHHP93iiqBNzJBgoOvPWH+eev9PM/jg3g6t0vLoHh/f7FOrgRKQLhNZyzDxpx9uZbDkeNHBnAn+/+4xpnLndyySIIj+DA7YYsnXdiBD0N4L++/sc1RiM8jiG79gdOjUDq9uOf75Ly9wspvz9gwM/iDfXm+8vLuW7ndTSAq3e/uOR62ENEC9emWQe8PcPPKpnmtW7n2BrA1bvL5w7T4SVaGLEijAxfNIfs9XdXvni746+tB96/v5yrKPwWwGmo0zOopzBsVEV65Y8/XLjZerytBag01bdJ+b2GlH/YSLJ6zfa4+cvVu387B44/DUUighguc3ahkMUAGGJ9zaIRbhDVDsLwkYA3W0eFDAN4d2X5PGdw8cU2qlhnhD0c8pUeHKlk1DfNBwwDYKx5yd17hb1iw4c3quovPWBAuwG8s7ycY5zRmH/E8ZeqegMHjly9u3xJfJcAIJFVl0YmETF0fBWUjAKJG/quhUCckQFEiCh4+q5w/vo797XOsN4HoDW8RLRINnEeAKR3V5bPj1YUghg+nKvnAECKQfswLCIffxKOUDmgNL0M19h5AJA5x8lhamXk40+iJ4+3Ob7e0DRFjgE/Py0hnXDp4vprWJzxk4DWBxhqCxBkqPUaDkL5Aa0VeLztotvUL8X0de3SKGs1aApFrZczglKv79xfznVdEeY1YVeooCiC2xy2Xo/nrSU3feSQF+yArCjnZHoz3TvaypUK2xHPHWN4KgOUqsDUBEMm5d29ZKqPIRLSwvbCriezDJNZly9qgxSthjpKzzo8gmvXMqQgi98/UXpWojdK97QoA0FOlgACogcyZNcjOHKyBHCoEYAnRW0iTGkCqTjw05MuToRZUKIWAhGjw7meCeUHgP0GsFH0RkdlRK4TTAQBofyCZtP+vMMTuU4w4Q+6O93cmPV7Nu2NFAoUyN5cOqrQTJczupfR2WclPClyNJpAOgEczXkXpXhkAFFVhCg+s/vIMeD45DBCcxlSFDIBEIQdMgCJVJWIAvaO3ouJMILwIXaOXoEM2WZDb4IYKeV94KvHKsr7wFSW4QfPMMQ8cNWy1gKQ9hP+4vYDTfkBYKvEsebmijATCs0DDAdyMf3ROhFWU7y5jwwFEqPq8RxyMf3RugBmzJP3gPQ+AGcRqJ6oTku4wCiK7idzEp58x1FTtFng6SNeOWnFg7dB/YiPHi9opT0KWRMycGJ6WBNh3J1HpEDKGUFS/kEImh5InLkjctgrlnCG7TIAH0OjQIS3+Fy9Bp5e8LlhEwZUU90YeCLM54ZNGFBNdUNiVECHh5xsIJGhuPw2aFQVgXxIIHH/ZbgA5gLMxhOYkJOYTWeQlGKYSmrr8WbTmb6us1YtAwBKSg27jTpKSh2lRh2Pq6W+ZRJyTCXTSOifk1JM/+x8fWBdbWKrVgUAbNUqqKlNrFXLxueoIwOQvfXa/lP+qWQap8ZzOJ7OGgrmBgcG0244ZmNoVcBsPIGphKbsbsuUkGKGXK0GXVLq2KpVsVYt4XG1ZBhKlIjMmuCpZBo/yz2NU+O5jsq1VauirjYNjy2+O8HsmYW3NitcVk4gKycsx/abCiTGuiq78OA1tYmtWqVvubJx7b6iRRHfzTKdGtdSL5eUOu6Xi7hd/BYlpe7o+kFHhmdrgu0YXTh0ajyH72cnje8lpY413ett1aoDhSmt3N8rth0zhzJTyTQmdU8PAKmYtei3alVs1yuGTK6EKR2cumhpZtNZHE9nkJBiyMoJ/DT3NO7v7fRpAP4Pc7sxxHeBRl9IW7Uq/ufbBx419+3lWNNbFLOBJaUYFidn8eMj0wCAv67fw1q1NNSYXMh0u/gtAK2F/PWJHw54tdHX66AokBGp/QFESOHNMzu7Yk1tYqdRM77btRzDJorxv4YCiUdG/Q+I3hMTduipEcNLVKclCGcoCLkBkKcnuiOH2wAIohdkAIQFt1rNIISfskKJsYgWPHsrxo/I1AKElyC44JHToQ9AZRcCfOSC/axPtgtifFR2vsbPFesn/KpP+jDo4cWLqiL4tWIJ57iSGzRomQAIQuBNVoiQukay66DgrKZkgHKD9kNI7TqEOK+pSL4MR7hACPymQjvEuEAIFGEgQuE3Zdog49DQCECgodSIrkPlGSQoBCIiDO0R5jFUtn5GXxE2SJNNFeuMsIdDwdYDZfAFMWGv2PDhjaoGWw/0FiDYVkw4I9iq6g2hXxMcRcidOUd/FYJ8Q5ig2nSOAricHp0gAgW9CkFEHFcNgOJPIki4PgpE4RQxUvpUZQWARF5bg8pBEGA31rfosnfrAYKmUAGudpfpXnNBq9duaCEQpznCQQiTIvRDmOpVWxDDwvRIw4OWAYQDGgZ1i5D6kTDbdcjeBQrLc/iLkNo1AONt0LA8YliegxgW/bcA5GQJIDR6oEDp82U4crIEEKoRAHoZjnCBYGqRTGlRiChDibEIDwiSQw3VKJDXBKliR0mw9GmAFiCqihCsiiV6a+qAE2GkCEQw6KWpru0QQxCjZNCYJGSvQhBRZVAXTi0AEWlkbSaYIKKJogASpxDoUFDpBRkZMjiPfC0mpRimkmOYSqaRkGKYiCeQlZPG79l4Alk5YfmfrVoVdbVpfC8pNew26qirTWzVqqipCrZq1UPJdTydBQDMpjMAMJBcW7UKamoTJaWOUqNufCcAWVYgB175GfruxhxPZzGbzuB4Omsofb9MJdMtRzK2523VqigpmuKtVcvYqlXazsnGE5hKaAZ4PJ21VexB5RLGY0aTp2rI9LhaGuheQUeBDHkgDfITfYg+lUzj98/9vOPvB967aVFUcdxMq2IJb92qvFPJNKaSaZwaP2IcqzQV4/O/nPxxT2UX3vswcpmPZ2VNRiFTPcItguzkpICbiIHZ05eUOtaqJd0TVvv2gq3n/x3rlu9TyTSSkozZdAYT8QQmdQ8PAGOxg2I3K/9WrYrtegW7jTrWqmXsKjWUGnXX5DKHerN665eVE45bwLDowQEKZIbeiVHC8tD393Zwf6+Ix9VS34rVL8IzmxVSKOBPjkzjdCYHAPh7YX1oYUhNbeJxtYTH1RJuF78FoLVYp8dzmE1nLa2UHbbLAAKsHDJksKsrX9wE8MtRC+Ml2XgC9WbTN52/pO5xE7GY54bYD0Iuv5ST16iQXrENgQJu2G34ScmAAwU7vKK5W1NRUXyB3GmTvDApf7ihmjoMCmTaIKMnQR8mJrqg9DETHFVFIP8QaiTHFRyiTAAEAYg9wgbWY3KNRLDR9wgjRSaiib4gxg0oHAon4a5XRXHNAMLeioRbEToT8nqVQ5gYi7b7IJyih0DhqtxwPQ3hJfqa4GC2AMGUmvAVihLcFiCYUhN+QpZpm1Qi4lB6dKJvwuQ0KTs00TdhcppkAEEkTC54yJiLTt8kjwgcPnLBQbPF1qKjTnAHqFyc4SNb7BtZWw/QnagqQpArlnCGNhHWo6ZpGQARVrRN8mh/DABk18HBvZqiTfJMhNSuQ4h7NaW1AJx8H9FCZFRCgQRGvq8jkVGEFiKjEiFcD+AqNAIQcgL8NuhooLIKGxIjr0ZEFtop/hCQ4wgDNjPBVLHOCLvjCL8eKLANgcJeseGDEgEMikKJscIA1eDg0ERYgKCachf9XSDyH0GBasp96F0gwlPy8RQuTp/EYm5m1KK0oQCj2SY1H09h6ejptuPlZgMre0XcKRd8t3WnqMjPdzawslcc2n0vTp/ETHKs4+9/3VzFem1vaPL0S1KKdZV/pCgOd4kE3DUTsRlbXVVRaOyjrjaR0AtqYWIac+ksbmyujsQIFnMzOJYcw/Un9yzH58dzSEgSzmbyQzUAgVZOatvxqO3r5SoyIHOHqu1FG1Fo7OPG5gPju/Cy+XgK82NHcKdc8OCu3Tmbydse/7y4gbJSx0plZ8gSifs/8bWn9xwPAhXZbzPBhcY+7pS3AQBz6QnbczJyHMeS45ZjCSmGY8nxtuOC1tETcX5GjvclX6/QTMjWbePpfDzV8xw36HSPbuXUSr/lJJ7NyXXz8ZSjaxp4oKZ6H6B/vOw1lJsNy/eFiWksTExjeXcTCSlmeOj3vvkSx5LjWMwdtRRmXVVxp7yN5d1N45iQdX48h4WJaWRiccv5NzYf4MXcjCVW/c0zPwIAbNQquLH5wJBDfG+VcX48Z7luudnAjc0HKCsN45yzmUkkpINxhzvlApZ3N10J9X7zzI+wUatgpVLE4pEZJCTJ6B8kpBgWc0cxP5azPPfy7reWVvZX0ydxNDmGT7Yf4dl01nL+Rq2Cj7cftcmakePa85vOBYCVShGfFdYsx/LxFF7Ozxr1VW428HlxA6tD2CTcDhmADI6+B5i9bDOEEpaa1r19hfLUVRV1rlVCPp5EPp5CobGP1WoJGTmO+TFNyUWHWvBSftaoJHH+ZDyFmeQ4ys0Gthv7lvtv1CoAYBzvxNLR00aFbtQqWK/tHVxXV/7F3AzOZvK60mmGOT+ew9lMHtlYHB9vPxq8wExk5Lih/AWT3Ben5yzllJBimB/LGSMzwghEvb701HEkJAkPdcV8Np3FTHIMFyZP2Iasol5W93dRV1UcS4619VcychwXp0+izpt4WC0hn0ghE4vj1ckT+GhjxSirYaJAgeyn2ZWzmbyhpF/vWWPthCRhpVLE58UnhhdaqexgpbJj8UplpWF4JGEA8+M547qffbdm24n9vLgB4MDzW7x8hzJamJhGPp4yWpGCjbFk5Lih/B9trBiy3ikX8OuZeTybzhrK2Y3F3NE2pdpu7BtyA0AmFkddVXH9yT3jevPjOeTjqbaW62G1hNem57Aw8bRhANuNfcwkx5CQJMs1jiXH8dr0HGaSYxZZL0ydQEKSOrYOlnKIxS2tQkKKYenoaWRicZzNTFqeY3jIg4VAbjGTHMPS0dOoqyry8ZQRHtwpF9o6fHVVtSi/dsxa4JoyNo1rC0TYtLy7OdgITocm72xmEgDw+c5GRwUW56xUim2yr1SKOJvJ41hyrKcBOI2ZW2URz36nvGU5b722h0JjH/l4ylDqA8dStFzDfO5kQjt3Lp01DK6X8huyFZ8Yn+tqEyt7RSxMTGOy3/6AS8hQRmsAACzx4EZ1z1b5AVgqyIwIJbopiDlEcQuzwXaLYUXlHkuO4eL0SctvonPppEPsdLy/9Rzx7GczUzibmbLeP5YAcDAsLbALR0TrI/o54rqd6qUVu/N6Gb3XDNwJdgu7DmU/mOP6lUoRZaWButrsOOvYK57vB7PSDNqJLSsN7a/pXvzbTywtFPAwcwlOy9RuDsPu2DCRtRBIH9MZ/oTwodDmCjTlv75xDwXlIF7txLHkmGsjDuZOekaO91S8O+XCSCbQBJ9+99iTjuYxv87yOkCxrAkOkPIDBx54o1YxlB+AZZhRIEYzRDzuBmbP3e26IiRpHSYcFiLsG/z+9iMAwpE4Hfv3I3IYskOLThxwMCbdihjlEEN55omd+XF7xeg0I2y5bmnbOHdhYtqI5RNSDHPpLADR+VUxkxzDS/lZS7yfkePGeV4hJha1eQjrMzlTXnvPWGjsG8b16uQJSznaTVb6kZH3AQ6DeWRi6ehpbNQqmLEZfxbnfvbdGl56ahbPprN4tkXptuv7Rjy8UikaY+SLuRks725aJtXM3CkXkE+kjLmHVuP7cO0rlJUGPt/ZwOKRGcyP5do8cbnZ8HQiaLVawp1yAWczeeOZzKxUigO/YvHpd49xYfIE8vEUXnpqFi89NWv89rBaCsCrGwpiv/r3f7sE4ORQ78u0DtBGvdJzJICBaSNENufeq+4iHZPR0JV+db+ET7YfodpUsFmvWkZ9DI/FgIaqotzUQpiVShGPa3tocs3TPayWUG42wABU1SYe7pewo9Q7yvGwWrK97p3yNgqNGpqco9DYx73qDgAGlXPjnPX6Hr6u7HQvA6bJvl7f69lp3KhVbEe6Hu+XbWVc3S/hfmXXCOWMZ6xV2jvm7KAMxW91VcW96i6qTQUykyzPdb+6ix2l3r2u+9ADL4iBf8CurvzjJsB/OfS7+4qAjQAQrqAq0istL8P5aFp4qJDyBw1XNFVWWlMjkiIQwcAdTfXZ69AE0YrXMUngh0GJcOOte1ZokzwiusiKTDvFExGmvRNMmKGSCTcKdYK7QyUTchS/b5JHLnhgqOgcIPt9FMhHLjhoCuWjovM1tEOMQ8KuUNHUAhoFInTMemB+xTzsyGH0bRk5jrlU1nj3XiyXdMJibgaFxv5IV2+Nmhf1V6YPs1zVr5hfe5TDulP80tPf03N8juNsZhJLT3/PNrtZPp7CP8/+wLJ4wz9L/KIZlHhNq7sP7IKYbnz23WNsN/ZRVhrGgpn5sVzbwpakFGtbQtmaFBfQVnhNxlPYNmU2yMhxZGMJ20UfwqC2WzIhiP9pPW53r1Kz7toaXiFPP7JGAWXUeYG8wrzCqtNCC/MKrtem5wBo6RZ/88yPjFVgF6dPIiPHkWAxI9vap4U1SxrFQmPfMJp8PIULUyeM1CHmhFnz4znLiqlPth+1rQQzZ5kD7JN4iTxKIjwRmTE+XPsKdbVp3EfIJDK3Adrqs4+3Hhkr6TrJakYkxbJLdRh0ZONdoBC3tsLDta5wWt7dxF83VwFoOXfe++bLtv9dr+0hE4uj3Kzj+pN7KCsNQ0mvP7mH5d1N5OMpY13vy/lZ1NUmPlz7SlsO2azj5bym9ItHZlBuNvDRxgquP7mHdZuVW8u7m/hoYwXvffMlHlZLWDzSnt5lXV/6KZhLTejPqR2bSY6h3Gyg0NjHhakT2Kjt4b1vvsSHa18BAH6uG/2LuZmOsgry8RRenTyBh9VS6JQf0HeJ5GA2/eBwWIRICnvYdbc3Nle1jnFF88afbD/SM1lri+3FqEk+njJyjoqQSXj0Om8iE9Nyl3ZKJrVeq+BYctxYYG+X4UK0CMeS44bhPayWjHXOc6kJrFZLWlbnWBzrtT0cS45jMp7Cem0PM3q25xk9RYydrFrZSbgwdQLlZh2ffhc+5Rd0CIHCMTJ0cXoOmVgCNzYfHCq+Ff/buibXfE2RpmUunbV0qsUa3Y+3HuHF3IyRSdqcORo4SB6bYDGs7u92lEVslDGTHENGjmOjtof12p6W4zNe0HKo7hVN8kxgLm39/6yeEa6TrIApY5+D8gkqWnbokCi7mYQU09Kf6Mo/jAXXNVPSW7shVLEZiIjZWxPCzo9p6dVFpuSFiemOWwut7u8aefuXdzexXtvTMlBn80b4IxT7Tnm7rfUTyt0tWVe52cBnhTW8Nj2Hl5+adS2Dtd9wMAwarHAoIcVwUc9kvLz7LZL6Jg92Ezsiu1vrHgODUGhoqVUWj8xgLp092LQjoSmiyF8qvH6nFknk7+mWbOthtaS1ALE4VqsllBVN6efHcoayr9e0LBILE9OGsYhy6CirqTUoKw2s1/awvLuJZ9NZR3mSgoYCGXLvfAjBaiEmTbOY5hw4dnlIy0oDG7UqZpJpvJibOfTEjxghenXyhHHsTrmA9foe5scP8vGLdCxmtEzRk5gfy6GcbJgyR4+3DV+KDvTDaukgo/NeEYu5GYtHv7H5ABemThijXICWBt48mtUma8u9lnc39Y1IZrBeG036Eq+QFQXs6soXNwEEIi2KV8lLnOT27Pd6dnMEomPb7V52Cu+VPL1+CzsSpFcctAD+wbNtmVxOGiuyPrdSV5s9O+NeKGIneXr9Fn4Uf74MF6xeBxFcZH8uifSjURJhJKQvwxGEU8gACAv+iwe8Q1FAeYEIK5EKP2VA4tF6ZP9DHmlgBik6CoH8ho/8UdBssd+iS3JejGQIFMVnHgQf2aIn/PbMC7e016EjRtgrlnCOBJXfNL5FzxaIiMKB2wAgIYYH5qNhhOw6KAyvphj4AwCQoDZvDe2uIyKkdh1ChldTHOwmAEiXz7xwC8DO0O5MjBZqDgEACS7dBPRhUM7Y9ZFKMwqiqgjUHALAzm/PLNwCdAOQoEbPAEKaCIDoDWfc0HcJAH7/3C+ug0U9DCLXGBWYGrsiPh/MBHNcsT2bIEIEA25f1sMfwGQAdVm6AuoM61A4FE4YGLM6esMA3jq1UASoFdAIezgUVQPnq7977vlr5iOWl+Hq8i61Aj7DG1UNu4HbI0G91H7MxFunXimC482hSUT0JJqq6gXsL7+b/6ebrUfbXoe+fOb5awD7yzBEIg6IalAyJHbGZHbJ7gfb9QBjZXYJDKueikRYIE/vHRLUpTe0Pq7Nbza8sbBQhNpcAvUHiIDDgbfsQh9BxxVhl8+8cEtV+SUvhCKIYcA4/+AP8893HdnsuiTyj9//xXVwvOGuWAThPZzzD35/5heXep3nqO919e7yOSapNznHkUNLRhCtuJ2fU8V/XP7+8287OdXRovjLZxZucVU6z/RVNH6CRk9CgHvKvwOGN5wqP9BHVojLZxZu1WTpPDj+cxDJvIJGT5wRdkfBgNt1uX7ucstMr4P/6593V5bPM6jXGDDX+2x/EaRs2IQjdriEt//wve6d3U4cyjFc/fqLSwB7G5wHzhAMyCKCCcMOuHqlLpevvHXqFft9nhxdxgWu3v3iEmdsiYG/7sb1iMMTYrteZcCVmixde6vD5FY/uBoavnP/f3OpxsRSk7Elxvh5OBo1CnFVEe7A8X+c4Trj0k3zu/xu4Gnf6J37y7mUopxTuXQSDCehAoAKtOx/a+w+Kpl65Srsu+gtx1tPU9WW6+jHpJ4XdvJr+znGZ9PBg4/ikwoVknHs4LPpiqrU9cYOi2MAWuTpIorlTJt6EJifXQUg6ecapaHXh+USLeUHqDclmRcvn3rB06wl/w+2ZclwUTZnQwAAAABJRU5ErkJggg==","e":1},{"id":"image_58","w":96,"h":96,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_59","w":32,"h":43,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAArCAYAAAAZvYo3AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAABPklEQVRYhe2Y0W3EIBBEZ6MrwCW4BHcQSnAJKSEluISU4A6SEijhSnA6oIPJx3GStQEZ2LtYkZg/BN55gAzsCipEcgYwAXCJ7isAD8CLSKiJW2K8kNxYphDHD48wnkheC41TILPFfI5BrHprnXnKPJD8IOkS49+Z36ZyCJJDJlDRvkYQDR9IjqUAi3UZMyu4ln6sZ7/UmO/izImJjCXkeumafyeS/mglX1RbE34aD5X1IP4vgEm1vw3mALCptjsC+HN1gA7QATpAB+gAF5ITgPudP6r+ker9Vyl9uw77eCLihaQH8GowaZaIyOlbcDrABbdnkz8Xo6vrvynmj/vcb7VkULXmX4mcj7wVMp4LQdJlzJsT2dqT0Bn7zQAPVy3AZuy3ifnyzb2WMD4VIEKkSneh9eEiFhDEl5SI+NY4P2meczsiWQdrAAAAAElFTkSuQmCC","e":1},{"id":"image_60","w":206,"h":81,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_61","w":655,"h":80,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_62","w":620,"h":375,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_63","w":620,"h":375,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_64","w":620,"h":375,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_65","w":333,"h":97,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_66","w":333,"h":97,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_67","w":412,"h":209,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_68","w":54,"h":143,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAACPCAYAAACxgChgAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAE50lEQVR4nO2d7ZGkOAyG5av9f53BksGSwRJCh9CXwWRwXAZzGXQGOxkslwGTAZNBTwL33g/DjseYBskWNJyfKqq6Z7EltT+RhZbooBhuAQDPRFT2X1tjzFNaldLwRVCmJKLvqRVJzW9bK6BFNmxvZMP2RjYsCBJpoYBkHfvAUAngJwkWegFXY8x16c1xhhH9TkRVZB1LaTg35zG2N2K74hsRXRPosYRGtXYADT7QFRbBYbtiNmxvZMP2RjZsb0gW6HbicyaTyUwD/Otugtek5ugpmO7X8ALEc9h17LCGSY6RSiI6KegyR2eM6TaQm8lk/k+orbb97FkSUdH/qSSijohu/feW7OF8p6VDMgAUAK4AboytUgegBlBsrf8IAKfeoFiuALZYI8cAKPtfPRU3AFWsXlFjDHYcNWSPk6Z4pY9xNVAQ0deZ6v/gnIclA7b7TbXUFcB5Qfkz7nfhaiVzPikWUqjtW5FbVwHgZaJbrjfmekVGrZSg3otGvRwF/NZK5oabMK5IVf+ccH+dSioYwLNXf52y/imhlXZXgZ1Y3B+vSy0jJLT2DGNPFgvl+K1WaMhxBbqzV6cop/QMu3DKS3we7vSr5rs3xrRE9O78qeCUlxjmCtA+lHDrZ3V5iWFzW6GUuIaxFupHd7/5e8zFPLphYrJhDu/zt2yPxDDxTCWgkBaMDRKroBZPBaKIHy5FIKbSWxNxDjRJV2yiJK7EnmbFhnOz5BjpRPqTRoh8jJTJZPR56KANzzvVGGMaTWHs8PTeszVcBUOW2AW31gL907kuawjc086DRTZsb2TD9kY2bG9kw/bGYQ2L9VIVgmPUao2j11jDvhLRn8wy32mFRCeH7YqHNUzSFa+0jdN0C5mZTCbzYPQROs8AWKnYYncew+nLub/cWIyOiF6MMS/M+kqyWV2GawjL/StOU54SF8yHot+NOoUN6nwC8GOmrnpNo5Zy843ruxjntUh9wzCOWVxq3EnwowC21SuOjiLfPaxr29+h/0NEL2TDJU5kx8eFPoeu/012a/RjRsRbf19D1mffSfRkgXEcITARSwgbKdp6rRYKae9gZ74ztnoVBOMI03rm/nvx+R1m4vNXA58jTBdFpyE8plo8ynssRKNjpCujnD+VV3payh403WmbE2Hq3vuqeohHMsPcWU4aOqueB2Qr10CnLeCwPo9Yw6oUSmgg2d2/EtG3/nPBmN3cqZ1TbkA3lgq8jWtKao6eeYw5NKmV0EBimDjIP5PJZI4JVn58xxoPpPjweQx+ikJJzvC6foeV3qr133a9KMl58uToxvrj815RbbHG+LX/WkvWINCF5ZcXyOqkslhbqsAg1n7E75zPBacgd6/o9/MudFNCGufzt6mbQsQ+tnSR5dXIz2MTFCmU0IBlWMDJWSTTJIx47Yp9XbiSCl6Ia9ibqiSMnTkq+7jAAt1wyktazF8otf5jtdr73ijJsQR+yeQplgIy9PeKvWA/h1STuP7Wq79LWf89waHj2uiEdJhOjndJpPoiJfzHF0CYSayvrwy0FJAw5xVHmZAiQ+tVC+soJ1oJCMSHLCU2W9+J7Gw1tUF9J/sE0AT+rSK7Tt3L9LdNxj6iX+Mi9UHFDQ8UTfAEXorPKRo8WtpP2NarIcuQ2SBhJIF21tkz2XE0JF4YxtOQJbPtr3XCijIPzH89zqTW8WqRXAAAAABJRU5ErkJggg==","e":1},{"id":"image_69","w":492,"h":2,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAewAAAAECAYAAABMSgw7AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAASklEQVRYhe3QwQ2AMBDEQC+isLRGZbRCJRwNROF5SHhe+7QWJEnS56WqBnB2h0iSpLkk2YELOJpbCshkS1q6ga074if8WpIkSS8eReAJZzs8leMAAAAASUVORK5CYII=","e":1},{"id":"image_70","w":135,"h":291,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_71","w":704,"h":291,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_72","w":249,"h":38,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_73","w":47,"h":47,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAvCAYAAABzJ5OsAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAB5klEQVRoge2Y0XGDMBBElzQQOggdxCWoBEqghJRACSmBElwCJeAKgjvADXjzITzGskQOSdg4ozfDh/HobleWT9IBiUQikUhslCxmMJIlgN345JOvWgA9gH2WZUPMnEGQLEg2JAfK2JNUz9YNkrVQsMtE/neW+KJzkl2A8AsDyd3WhA8k2/HpN2NgRvhA8tsmZDRcuYyc9dhibeGuNS5evzMxujWFF46kjUesyhGriq9cJ2xsMx4Q78sSr48o+SbZbR0/c5AulZmYrcVAKR3/JkxSAni/eZmhibBb1pZ3SjpYJB56uzdppElcZFnWAjgKcvlDXU2mRDuf2P5L0rHSmTfXdsyy1vsOlIrfJL7ii4gavCuWVLy5TD5Cy+QEZXw+SAf6igcAcT12QX2e+RTkCkqSr7EbOnbtKlzxfSKzXJJkHRBPWeIF79pLknnNFMkd7dfGOrrwSVLb7JPk14IYyiH8tMqsTxLnjsSkPmSpmbGXi7qLn6XiF7c+qG9KLcyD2pUjrq0OQNdxhfuqYuMAQK3aHplZszHolv4CPgYKhnUQTtRL5TkGRhPOi7WDgfoem3O+E/EYA6OJkrp7YLsdddR/1soUtBkDvvx3A94X/YfhMPDYlmAIhoHXEX5hNLB/OeGJRMLNL7j+ax3gOHk8AAAAAElFTkSuQmCC","e":1},{"id":"image_74","w":70,"h":70,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_75","w":704,"h":86,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_76","w":79,"h":38,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_77","w":154,"h":72,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_78","w":79,"h":34,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE8AAAAiCAYAAAAeXoQCAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAEV0lEQVRoge2ZLXMjRxCGn4lVMrGQQmRkpJAz0pE7JJQjNjJKfkB+VH7AsSAFGQn5iE3ORyy0SEIbIpGoyumA6ZV6P2a0u7buylX7Vqm0tbPb09Of78xChw4d3hjcawgRkQkwAR6ccw+vIfMt4KcfrcBbRu9HKyAiF8AQOAXOgBRInXNJzffP6zznnFs20GWoeqyBxDm3rZRZZ+LIZAPgErjAL5zCpIvIu5f4VO8HHtkA80OLFpE/6ujqnPszImMIfGK/Bout6pGUZNaZODDhR+Ddgce+OefuKt6dAuOaU/0dMqA677c6QkLGU8Nds3fiFh8AQ/KOLenRKm01aqzhFvhoAxjgI7EPhKJmCYyfn5//OTk5+WojVFPnI/somAKfA3IG5voLftFN8Ym9kRbAnXNuKyJ91SNzckmPtjVvYq4rI0NExqG65ZxbiMhpr9d7rBhLRGQN3OitMxEZOueqDGPTbBl4JggRGRsZqXNubvTYAnOtqWeqx9g6unG3FZFz/tt5ahVKqVi90/GS4cxYCiTm1kXg0V3kNTWc4tJchyjWvbn+xQ60oyrfh+DUMcZQ/zdNhWu9zN7fRrq7vT+yA23M8K8VVpcqtMCpua6kCuaZdWA8hqG5DjpK03c3btfbuOY551IRyboRwJWIPACPIT7UEhfmOtR4Mh0GInKDT2NLlZKIfGu8Qxywcl1tE3BeEDgBfheRqabDi2CKNMAmUs+y2nvGnlqM8B3yVxG5USryUtjI3qVuq26r0TfDt/JMWB+v9FhEvgH3L4jED+b6vuoBNUpCPuUGgDX8ELgWkVnLhpKhsiz0NFJihHVd1TlVmZlGyYR8MX2Hr4ezpgZUAp1FSxrq2jr/bUDGGO/Yvv6mwF9N9KiDHt5bk8gzKzx5rIRSlaU64QP7WpVteWZ1ldFFZ47cEjDOISiP3ABXmS4RrlgHthTtorCH756ryIu1JnTOrYFb3X1kaTcSkYGORaGGm5pb8zrvRfRZFhrbBe12IJA33o4W9bL0aym0BOfcoxpi1wk5QCUChkteQZ2EfFe1sIY8J0ySIW+8HVU7Ft2t7eGA4aK7kwY4jYxZHYMdWfe4WQPa2tQ/lvFqEecjGw7yXDFXmrQkZCnYj5B9KyPHB1sZT/lTZYfWbmk5Wug46aiG0yOzQ3rY/XWpaWrUvTe3cvo15nnmtHWqCqZ4jxQ5FkDpLE9lFA23ADaxrV5x8bqjWAFPNpUqun5QD+CJ/YHsSB1vj6SmZj2rYh1ufBiqxpsSPgEGTzPuqiJJye1N+ZU47GFmQMaG6pPgL7ETHHXYlbmV7WVHhXslot1mb5uIyGe8Z8/xEZdtjVJ8FD1FyHGsiNeFPe3NUDTcBu/AJCZIKc0t+4DItngZUnxJKTXB1/r0eK0THvz0qOnwc9M5AgeuQ7wDi1mQtDgY7eMDwtKS6Ieo7/71TCPy4JesmrJS2hPfoqwtkZ1UFbrvth06dOjQocOx8T9wQNtechHwOgAAAABJRU5ErkJggg==","e":1},{"id":"image_79","w":154,"h":72,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_80","w":79,"h":38,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_81","w":154,"h":72,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_82","w":79,"h":34,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE8AAAAiCAYAAAAeXoQCAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAESklEQVRoge2Zr3IjRxDGf51SycRCCrGRkELOSEfukFCO2MgoeYA8VB7g2CEHGQn5iI18xEaLLLRIIhHpgOmRWqud0e7azp2v9FWptLWz29PTf7+ZhQMOOOCNQV5CiKpOgAlwJyJ3LyHzLeCX763AW0bveyugqiNgCBwBx0AJlCJSNHz/tMlzIvLUQpeh6bEAChFZ1cpsMnFmsgFwBowIC6cy6WPm3TNCqvcTjyyB2b5Fq+pfTXQVkb8zMobAJzZr8FiZHsWOzCYTJyb8CLzb89g3EbmpeXcKjBtO9U/KgOa8P5oISRnPDHfBxokrQgAM2Xbsjh6d0taixhvukRBtAANCJPaBVNQ8EYxXAvc+Qi11PrKJginwOSFn4K6/mry2+MTGSI/AjYisVLVvekQn7+jRteZN3HVtZKjqOFW3RORRVY9E5L5mrFDVBXBpt45VdSgidYbxafaUeCYJVR07GaWIzJweK2BmNfXY9Bh7R7futiYsemqeSqlcvbPxHcO5sRIo3K1R4tF15LU1nOHMXaco1q27/s0P/MhUpYkxhva/bCvc6mV8f5Xp7v7+iR/oYrx/vbCmVKEDjtx1LVVwzywS4zkM3XXSUZa+63G/3tY1T0RKVY3dCOBcVe8IhT+1yC4YuetU44k6DFT1kpDGnioVGfneePs4YO26uqbtrCJwAvypqlNLh2fBFWmAZaaexdp7zIZanBA65O+qemlU5Lnwkb1O3U7d1qLvitDKo7A+Qemxqn4Dbp8RiR/c9W3dA2aUgu2UGwDe8EPgQlWvOjaUiNqy0LNIyRHWRV3nNGWuLEombBfTd4R6eNXWgEagY7SUqa5t818nZIwJju3bbwp8aaNHE/QI3ppknpkTyGMtjKo8mRM+sKlVcctz1VQZW3R05IqEcfbBeOQSOI+6ZLhiE/hStI7CHqF7zjMvNppQRBbAte0+YtqdqOrAxrIww03drVmT9zL6PFUa24huOxDYNt6aFvVi+nUUugMRuTdDrDshe6hEwnDFC6hTsN1VPbwhT0mTZNg23pqqvRZJbuzhhOGyu5MWOMqMeR2THdn2uLEBrXzqv5bxGhHnVzYcbHPFrdJkJSGmYD9D9r2MLT7YyXjGn2o7tHVLz9FSx0mvajj7NLBPD7+/3mmaFnXv3a0t/VrzPHfaOrUzvZLgkSrHAtg5yzMZVcM9AsvcVq+6eNtRzIEHn0o1XT+pB/DA5kD2xBzvj6Smbj3zah1ufRhqxpuSPgGGQDNu6iLJyO3l7it5+MPMhIwl9SfBX3MnOOawc3cr7mVPKvd2iHaXvW2hqp8Jnj0lRFzcGpWEKHrIkONcEW8Kf9obUTXckuDAIifIKM01m4CIW7yIklBSdprgS316vLAJ9356tHT4te0ciQPXIcGB1SwoOhyM9gkB4WlJ9kPU//71zCJy75eshrJKuhPfqqwVmZ1UHX7kw9ADDjjggAMO+DnwH1lJ1060X19WAAAAAElFTkSuQmCC","e":1},{"id":"image_83","w":154,"h":72,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_84","w":79,"h":34,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE8AAAAiCAYAAAAeXoQCAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAEUklEQVRoge2Zr3IjRxDGf+1yycRCOmIjI4WckULukFCO2MgoeYA8VB7gWJCCjIR8xEY+YqNFFlokkQhcB0yP1FrtjHbXdu58pa/K5a2d2Z6e/vvNCPbYY483BnkJIao6AkbAnYjcvYTMt4CD763AW8bh91ZAVc+AAXAEHAMlUIpI0fD70ybzROSphS4D02MOFCKyrJXZZOHMYn3gHDgjbJzKoo+Zb88Jqd5LTFkA012bVtU/m+gqIn9lZAyAT6z34LE0PYotmU0WTiz4EXi/Y9pXEbmp+XYMDBsu9U/KgOa835sISRnPDHfJ2olLQgAM2HTslh6d0taixhvukRBtAH1CJPaAVNQ88Y0hB5TAvY9QS52PrKNgDHxOyOm75y+ETbfFJ9ZGegRuRGSpqj3TIzp5S4+uNW/knmsjQ1WHqbolIo+qeiQi9zVjharOgSt7dayqAxGpM4xPs6fEnCRUdehklCIydXosganV1GPTY+gd3brbmrDoqVkqpXL1zsa3DOfGSqBwr84SU1eR19ZwhnP3nKJYt+75Fz/wI1OVJsYY2P9FW+FWL+P3y0x39+9P/EAX4/3rhTWlCh1w5J5rqYKbM0+M5zBwz0lHWfquxv1+W9c8ESlVNXYjgAtVvSMU/tQmu+DMPacaT9Shr6pXhDT2VKnIyPfG28UBa/fVNW2nFYEj4A9VHVs6PAuuSAMsMvUs1t5j1tTihNAhf1PVK6Miz4WP7FXqduq2Fn0TQiuPwnoEpYeq+hW4fUYkfnDPt3UTzCgFmynXB7zhB8Clqk46NpSI2rJwaJGSI6zzus5pykwsSkZsFtP3hHo4aWtAI9AxWspU17b1rxMyhgTH9uxvDPzdRo8mOCR4a5SZMyOQx1oYVXkyJ3xgXavikWfSVBnbdHTkkoRxdsF45AK4iLpkuGIT+FK0isJDQvecZT5stKCIzIFrO33EtDtR1b6NZWGGG7tX0ybfZfR5qjS2M7qdQGDTeCtadBjTr6PQLYjIvRli1QnZQSUShiteQJ2Cza7q4Q15Spokw6bxVlTttUhyYw8nDJc9nbTAUWbM65jsyHbGjQ1o6VP/tYxnRPJbdtIrGw42ueJGabKSEFOwlyH7XsYGH+xkPONPtR3auqV56mCRuU56VcPZlZnninV6+PP1VtO0qPvVvdrQrzXPc7etY1OwJHikyrEAtu7yTEbVcI/AInfUq27eThQz4MGnUk3XT+oBPLC+kD0xx/srqbHbz6xah1tfhprxxqRvgCHQjJu6SDJye7X9SR7+MjMhY0H9TfCX3A2OOezCvYpn2ZPKuy2i3eVsW6jqZ4JnTwkRF49GJSGKHjLkOFfEm8Lf9kZUDbcgOLDICTJKc806IOIRL6IklJStJvhSPz1e2oI7f3q0dHjXdo3EheuA4MBqFhQdLkZ7hIDwtCT7Q9T//uuZReTOX7IayirpTnyrspZkTlJ1+JEvQ/fYY4899tjj58B/LZfZVcOBMuMAAAAASUVORK5CYII=","e":1},{"id":"image_85","w":154,"h":72,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_86","w":79,"h":38,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_87","w":154,"h":72,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_88","w":340,"h":104,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_89","w":333,"h":97,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU0AAABhCAYAAABS6fM9AAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAARXElEQVR4nO2dT2zbVp7Hv6RY1muoNtc2CrsYQNIhAwwygNmccrLVxeylPUQ9zcwpMiYJMKcqt7lFPe5plFMXdQLR2NOcxlmgxQBToHJOObXyogWK+kBpUWw8mcSQMoLrUWVyDxJl8vGPSImUSOn3ARLIFPnje4/Ul7/f+733yCHOVFUJPcgAZAASOMjQIYEHoOkAzwEaAN50jPG35mCPZ/YxPkMHwDHbXI63HKsPtnGj62I7H6zntJx3UB6vMsCl/k7ld2sfSzsZ5xzYtdkxtZF5O9sm0Affcw7txe7HuXznUA+LLd30vUuZ2HKzdWdxqxdrUzPZY68FWycWp+tiKZPbdWfsszaMNueZerLndrsett+Qw7V2rJOpPE7tyt4TPGf/3WoAONShowUOdaTQwF6u7nS2uODj1z5FqqqMHvLg9DzAyQAysy4SQRAzQMcRONQB1JBCDXu51qyLZDB70dxX8+BQAFAAieRi4eFQEwTDE+iooQMF92croLO5ZatqFj0UwaEIEkoiVgzCYCLOPAGg4E7ucBYnn65o9r3KIoDbUz0vQRB2ku/pN6GjAgHKNMP36TTZp6oMDhVw2J3K+QiCWCD0NnSugru58jTOFq1oVtUsLlEGeZYEQURPExrKuJdTojxJdKK5r5bAoQxg1bI9+SEBMY/E9r6kPtbAcDhCF0X8PteIxnzYfKJmIUDxDsXpRiCI2GF+cMT2IeKbNnSUcTdXCdtwuM3yWC1CRwWsd0kQBDELOByBRyHMRFF4ovlIVRDXvsvkPzUJghifNjTkcS+cmUaTS0lVlaChBh3bIZSHIAgiGjTshZEkcpsl64+qKuOSBJMYA+rSnh7U1n14VLGvlic1M76n+akqg0cN1H9JEESyOMCdXHHcg8fzNEkwCWI+WEwv9PYgBzMWwUWzSoJJEHNDLBOkUynU2MIZTDSrqoRLKCDBJAgiMqbm/t7GY7UY9KBgoqmhBngkfRbT1ScIIqnoqOKRWghyiH/RfKQqI7PksXT1CYIgvNAVfKrKfvf2J5p9FzaeA9eJ4FBEQMSRmd2X3Cp4KPijKvnZe7RofqJmB1MjiXmBG/5HEPFhtrfkNt5C2c+Oo0VTnCDxo7t8JmIAXRCCYPgIVTU/aidv0dxXS9AnWDiYc/lMLB6k0UQSuISCqneY7i6aVTU7WA+TICaHHppEMshAQ8lrB3fRvHRYQJggiPmBvH9ndDzAJ2rW7Wtn0eyn392z5dTYBJF8yPt35w335LezaKZGZMupsQmCmG9uuSWF7KK5r+YnSv6QF0oQxDygOed07KLJ6cWJThRLLzSWhSIIIs7o2HXq27SKZlXNAtwczvxZIPd3gapKEJEj2L1Nq2hqKE6pKERUkFNNEOHBocBOr7SKpk6iSRBTgSKCpLCKFVhWQboSzX01DyAz5QJFS2xvTHIHFx6a/58kiuY/rkSTQ6A15RJBbO/JKao5zf+PMXRBEoGOXXOILpi+mj/RJGj+f8Ko3FyDvC4CAOqvuig9OwvPuA66B8alH6IrgCGa/RlA8xWaJxR5XYQk8pDXREhvOs89qL/qov6qi0anN+XSEVEjr4vY3VyKxjgJ5vjorGimkKdIIR58XXjH977HZ11UvnkN5aQTYYkIggCQNz70XRn9asNEkPBOle01EdWdDRz+6m1I4nhvYyYIwherxisxjD5N3+/H8ITc/1A5Or1A7Xn/HwBk0wKybwkoZJaxvSYO97uVWYays4HCFy9mVVSCmH9SkAHUhUFWiPozY0jt+QXKX7Vs28tftVAYCOXqwMO8lVlG8Vq6H6pThz9BhI/edy55SCF5mcRUOWyeo/j0pWVbIbPc/xBLwYxloQjCP0PR1Eg0k8ph8xzHZ93h37cM0YwlC9ThvUBVXSg4DPo0NUjkBCSXw+a5pX8zCPK6OPROle87I4cwyesi5DUR2beuhvea+1wngbXd+qeG+ll/aFWrq41to3Z6gfqr7ogjnZFEHvmtpeG4SaA/3Kv2/MK7TB6/p/zWEvJbV0OKfNkj4sIq0E8Ekac5x+S3lvDl+5sAgGanh+yffkA2LUDZ3bCMB6w9v3AVzeK1NMo3JGTSgu27B+8C7a6GyrevUfnmdaAfvyTyKP1yBaXrK8O+WSeeNM89k1z5rSVUbq65PjyanR5Kz85w2Dz3Xa7KzTXcvpZ23efht69R/qrlu76l6yso35Ac62m0n1P/NREh4/T9V1VZAA+JwonkknUQMjcyaQGSyKP+4TueImUgiTwO//3tkYOtV0UeD96VULyWRuGLF1bPzuXGZBNZXpg9W5bKzTV8dH3F8/hMWsCff/U29p6+NI1p5eAUR8vrImrvb44s10fXV/pe42ennsLppw2N9gtyLYkQGM7/DyCAPUh0lRKOOdRr+pghVLm55lswax9sWry3dleDctIZhpOFQcbesJdJC6i9vwn5z/935bU6CGbxWhrVnQ3b9ifNc9QHfbRGaLy9Jrp6iOUbkkUwm50eyl+1hufOby1ZvNjqzgYand6gO8H+Q8kOym/sb9TXOH82LaD48/RQALfXxJFDvZSdDZtgGkPJDJuFzDJWRd7TsyWiIrjHKEADJTYTChsy+wk/jR/m8Vl/XrNbf2T5hmQRzOOzrs2rMoZEmT2pVZGHsruB/GenjnblddEmmAcnHZSenTl6bNm04Lg9v7WEB+9eLXN4cNKxjSaoPb+A8n0HtQ82h+2k7Gwg+6cfHMum7G5YBDP/+amtP1Q56UDZ2Ri2463MMvJbS47tWLyWtiTn2l0NhS9e2PaVRB7KzkbME3kEAEDweoWvHyisnwmSyKN8Q7KIRrurofLNa1/HGwLoJpjZtGDz4NzC0FZXQ+GvLyxe7u7mEoouXlPl5prl7/vPzlB8+tI1xG10eo7flW9c1b3Z6dkE03y8+bvMwLNjyW8tWTxCWzeDieLTl5b6lly6B8xlBID8585t3upqKD59aRkJQcSUHsCDQ3ZsA+ShRooRXhoZ19L1FSg7G2j8+mcWwQSA0rMz3wt4FP76wrMfjv2xu3mBBq2uZluNx0mY2MUojk4vUPnWn9CbyaYFi51RCZTa8wuLyJm7NAzMwmcOn90wP6CcPMRCZtkSBRycdDyz+K2uRomgZCAL0NEARzOC4sju5tLIJEx7IFjDBMeIjODRqXuW3MAsKu2u5ivsP2yeo93VLDOUWFjv069nzMIKsp8FSxqd3lDEzEOIDMzlPWyMrm+d8QrZEJ0VZj8PB7/ZfWKm1CkRlFAMMTMnPgCM9P79jKk0e0hBxmDWnl9YxEdeFy3eFStW44qE2U6z07N5xqNgs9RsueR1caTNUZlu1qbfsaLmBw8RT0g0Y4wRJsqDhIzh3YQ1oNwJ1kNiPSov6mddi2iyKy/JpsTS0en45TcPQcqkBVtXxSjY8aZsOcPIYptFNUhd62fd6NbTJEKBRDPGuC3YkVTi4kFNIth+cZoIMHsCjkkkHBHAoQFgd9YFIeYfc+gZ1vqfR6cXrsObxuU9lyx3EMYNs6NdF3WBBDOqlb4ENHjoaERgmkgorFg4ZZrdsIX2TD+eOdTfXhPHFojWP68y+VHMoglDuMx1DRJuj7uOAMEQ1cievRyJJmGHHXPpR0QkkbeIQ9NhfCUrok7DkvxgFqRMWphYONkHxbjlMtP4h3WEgh+bNI0y9jQBgMcbJJqhMSfRD5vVLv3Se2630z5OmXFWnMo3pLG8OtZ20Oy5E+Z+zkJmeWIBG6cNiz+PaBplbO/LhA307ndlgsderjbbkswRwwUAkg07frJ0fcVxbKOBvC7aMthOYzAPm+cWLzaTFqDsbAQWzvqrrkXkbl9Lu85A8ovy/dVYz9XBIhuThOnGuFUDr1lSgHMbhkZsb8kpqrnu8jkIGmrA1TTK40nKQ5iJ7WPdN41ODw9Ng7FXRR619zcdQ8xCZhm1wdJzBh9/3XJfZo6Z7ngrs4zaB862s2kBpesrjmLDzkCq7mz055W7eIiGLbc+WuWkYxHi7TUR9Q/f8QyrC5llTy+XHflQ3dlw9K5L11dsbUiEDOfyOZiN+tXhj1QFwO2JCkWEgv677PDzx1+3Rg85GpElNK+n6dvmgNoHm7YkRnO4SlDfNju0xmnhDBa3VY6AqzA5mxaGtt1sutk5PrMuXCyvicNMtlf9nVZ2AvqZcHM/qiTyw33aXQ3Sf/2va13Ni3s4ldHcvsaEBWP/KEYGEBOQQg57uUb/rtRQA0+imUgiDL3yn53a1qvMpAXXwd9+BVk56aDV1RzX03TKNHt5h052vDLQXqMBWl0N+c9ObetfrjJJLjOrIm+b+WTGEHu2zZyEOf/5aShJKCISmtjLNQAgBQD4t1IDb+IPsywR0ee9d5bQ7PSGHl2QGTlOSG/y+IX0xtg2//LDjzg6vQAHIPeWgKWUVaWbnR4OTjr47Zd/DzQt8rv2T/jP7/6Bv/14ia3lFDb/JWXbp9np4UnzHJVvX+O79k9j2wH6XtvBSWfkausXl/owVP9XkcfWcspWZ3PZPv66ZR/TyXj/xructpZTtu6DdlfDf/xPG7/58u9odHqQBuc0+n79zKtfaKb35tUD/PfDv8ByusdqHTq2p3J6IrEY714HEOj9PX6Q1/tjN1tdbez3+pjtAMHmzrshDbxJoD+UyO9qUm4Y3m4Ytoip8SHu5A4Bs2juqyVw+OPMikQQBBEm4XmhbdzJDTN+Vx1BAg5DMU8QBBEHwgvbLdp4JZp7uQZ0HAWzFdsBYARBEOGgQzH/aU1d8tYv/VhbGBaoqgRBDGnirnUCkFU0f5dTALSnV54EQU41QSweHCrsJvs8Md2+E0EkBooIiPBo47U9+raLpoAK9BHeZmxvTHIHF545mf9PxAAOFdzP2WZr2EVzL9cCP8LbjO09mbAFAIiIoAtCTIiOtpsOOi/j8hoVUN+mN2EsAEDMB6TR80gFe3YvE3ATzfu5FnSUoywRQcwN9NCcN5oQ3KNt78v9SK0DNLWSIIiEMdlsoOGUSSe8V1nVURr7tEmFQi2CSD7jr5l55CWYwCjR7A/qfDjm6ZMJhVoEsai0waM4aid/EkErIPWZ3jJUBEFMH8+w3MDfS1AuUQRl02MqmLEsFEEkjQM/ggn4Fc17uTq4BezfTAQL1Am7QFUlpol+jJR/fQvmpuyrZXB4ELhMBEEQ8aSNFLJuYzKdCB7b0UvYCILwIjl9/22kkMderh7koOAvdr6TKwI4CHwcES6xDVWT8WshIiQZ8//b0IILJjBJzcjjJGaN2aNJjndDzBodbQjjCSYw6W1GwkkQRBzw/9AcKyQ3Ezw8N0OhOkEQccCPYOrjh+RmJhNNoC+cOu5PbIcgCCI6jiFAxr3JBBMIQzQB4G6uAh3vYZ4HwMc28TKHUFsT4XIwCMkbYRgLt+u8qkrQcAgdu6HaJQiCCE4bOsq4mwv1FT7R5Bv31RI4lAGsRmKfWFwoS074QccRBBTD8i7NRHf7faJmIUABR14nMe9woD6F2BCJd2km+mf2vpoHBwVAJvJzEQQRLfH29B8ihXKQKZHjML3qP1aLg1dokHgSBBEmB/gJZfw+/FDciek/Mx6rRWgoUthOEMQEtAEoSKESRb+lF7NztKtqFpcoAShglPcZ75CAWFRie1/OdR/rE2g4xL2cMqsCxOOS9/s9C4BeADgXAZ3rG4Egksk05v/reAIeh+BRm7ZX6UQ8RNNM3wOVAS0PnZcByOBo6BJBLAjHABrgUIOG+uA9ZbEifqLpRFWV0IMMAUAPMgDJc39jnpNm3qYBGu/8HbSrg9jvnf622GVtOZRFC7CfUVbwHuc0fW+2D7ifw20/8988AI1pC9aeU33c6sbuw56XLb+rjcEOln3MlXE4fpR9P9cDGO9agymvn7qz5xpuYCbtebbB4B634dR+DudnD2Fxuua+7hGXk/AAdNSRQgtAa9I54dPi/wGTQIPDIQH2ZQAAAABJRU5ErkJggg==","e":1},{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"03","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":125,"s":[945.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":150,"s":[805.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":200,"s":[805.857,504.021,0],"to":[-50.833,0,0],"ti":[50.833,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":225,"s":[500.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":275,"s":[500.857,504.021,0],"to":[-51,0,0],"ti":[51,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.426,"y":0.426},"t":300,"s":[194.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":350,"s":[194.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"t":375,"s":[54.857,504.021,0]}],"ix":2},"a":{"a":0,"k":[500,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":125,"s":[0,0,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":150,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":200,"s":[25,25,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":225,"s":[38,38,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":275,"s":[38,38,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":300,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":350,"s":[25,25,100]},{"t":375,"s":[0,0,100]}],"ix":6}},"ao":0,"w":1000,"h":2000,"ip":125,"op":625,"st":125,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"04","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":200,"s":[945.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":225,"s":[805.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":275,"s":[805.857,504.021,0],"to":[-50.833,0,0],"ti":[50.833,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.426,"y":0.426},"t":300,"s":[500.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":350,"s":[500.857,504.021,0],"to":[-51,0,0],"ti":[51,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":375,"s":[194.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":425,"s":[194.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"t":450,"s":[54.857,504.021,0]}],"ix":2},"a":{"a":0,"k":[500,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":200,"s":[0,0,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":225,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":275,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":300,"s":[38,38,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":350,"s":[38,38,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":375,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":425,"s":[25,25,100]},{"t":450,"s":[0,0,100]}],"ix":6}},"ao":0,"w":1000,"h":2000,"ip":125,"op":625,"st":125,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"05","refId":"comp_19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":275,"s":[945.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.426,"y":0.426},"t":300,"s":[805.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":350,"s":[805.857,504.021,0],"to":[-50.833,0,0],"ti":[50.833,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":375,"s":[500.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":425,"s":[500.857,504.021,0],"to":[-51,0,0],"ti":[51,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":450,"s":[194.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":500,"s":[194.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"t":525,"s":[54.857,504.021,0]}],"ix":2},"a":{"a":0,"k":[500,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":275,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":300,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":350,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":375,"s":[38,38,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":425,"s":[38,38,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":450,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":500,"s":[25,25,100]},{"t":525,"s":[0,0,100]}],"ix":6}},"ao":0,"w":1000,"h":2000,"ip":125,"op":625,"st":125,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"02","refId":"comp_22","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":350,"s":[945.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":375,"s":[805.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":425,"s":[805.857,504.021,0],"to":[-50.833,0,0],"ti":[50.833,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":450,"s":[500.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":500,"s":[500.857,504.021,0],"to":[-51,0,0],"ti":[51,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":525,"s":[194.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":575,"s":[194.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"t":600,"s":[54.857,504.021,0]}],"ix":2},"a":{"a":0,"k":[500,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":350,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":375,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":425,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":450,"s":[38,38,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":500,"s":[38,38,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":525,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":575,"s":[25,25,100]},{"t":600,"s":[0,0,100]}],"ix":6}},"ao":0,"w":1000,"h":2000,"ip":125,"op":625,"st":125,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"03","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-175,"s":[945.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":-150,"s":[805.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-100,"s":[805.857,504.021,0],"to":[-50.833,0,0],"ti":[50.833,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":-75,"s":[500.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.333,"y":0},"t":-25,"s":[500.857,504.021,0],"to":[-51,0,0],"ti":[51,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":0,"s":[194.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":50,"s":[194.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"t":75,"s":[54.857,504.021,0]}],"ix":2},"a":{"a":0,"k":[500,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-175,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-150,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-100,"s":[25,25,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-75,"s":[38,38,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-25,"s":[38,38,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":0,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":50,"s":[25,25,100]},{"t":75,"s":[0,0,100]}],"ix":6}},"ao":0,"w":1000,"h":2000,"ip":-175,"op":325,"st":-175,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"04","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-100,"s":[945.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":-75,"s":[805.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.333,"y":0},"t":-25,"s":[805.857,504.021,0],"to":[-50.833,0,0],"ti":[50.833,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":0,"s":[500.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":50,"s":[500.857,504.021,0],"to":[-51,0,0],"ti":[51,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":75,"s":[194.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":125,"s":[194.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"t":150,"s":[54.857,504.021,0]}],"ix":2},"a":{"a":0,"k":[500,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-100,"s":[0,0,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-75,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-25,"s":[25,25,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":0,"s":[38,38,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":50,"s":[38,38,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":75,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":125,"s":[25,25,100]},{"t":150,"s":[0,0,100]}],"ix":6}},"ao":0,"w":1000,"h":2000,"ip":-175,"op":325,"st":-175,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"05","refId":"comp_19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.484,"y":1},"o":{"x":0.333,"y":0},"t":-25,"s":[945.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":0,"s":[805.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":50,"s":[805.857,504.021,0],"to":[-50.833,0,0],"ti":[50.833,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":75,"s":[500.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":125,"s":[500.857,504.021,0],"to":[-51,0,0],"ti":[51,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":150,"s":[194.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":200,"s":[194.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"t":225,"s":[54.857,504.021,0]}],"ix":2},"a":{"a":0,"k":[500,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":-25,"s":[0,0,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":0,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":50,"s":[25,25,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":75,"s":[38,38,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":125,"s":[38,38,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":150,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":200,"s":[25,25,100]},{"t":225,"s":[0,0,100]}],"ix":6}},"ao":0,"w":1000,"h":2000,"ip":-175,"op":325,"st":-175,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"02","refId":"comp_22","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":50,"s":[945.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":75,"s":[805.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":125,"s":[805.857,504.021,0],"to":[-50.833,0,0],"ti":[50.833,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":150,"s":[500.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":200,"s":[500.857,504.021,0],"to":[-51,0,0],"ti":[51,0,0]},{"i":{"x":0.575,"y":0.575},"o":{"x":0.426,"y":0.426},"t":225,"s":[194.857,504.021,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.484,"y":1},"o":{"x":0.52,"y":0},"t":275,"s":[194.857,504.021,0],"to":[-23.333,0,0],"ti":[23.333,0,0]},{"t":300,"s":[54.857,504.021,0]}],"ix":2},"a":{"a":0,"k":[500,1000,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":50,"s":[0,0,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":75,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":125,"s":[25,25,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":150,"s":[38,38,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":200,"s":[38,38,100]},{"i":{"x":[0.575,0.575,0.667],"y":[1,1,1]},"o":{"x":[0.426,0.426,0.333],"y":[0,0,0]},"t":225,"s":[25,25,100]},{"i":{"x":[0.484,0.484,0.667],"y":[1,1,1]},"o":{"x":[0.52,0.52,0.333],"y":[0,0,0]},"t":275,"s":[25,25,100]},{"t":300,"s":[0,0,100]}],"ix":6}},"ao":0,"w":1000,"h":2000,"ip":-175,"op":325,"st":-175,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 22","refId":"comp_2","sr":0.9,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[982.245,1000,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"tm":{"a":0,"k":0.133,"ix":2},"w":2000,"h":2000,"ip":0,"op":55,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 22","refId":"comp_2","sr":0.9,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[982.245,1000,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":2000,"h":2000,"ip":55,"op":505,"st":55,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1377.548,477.821,0],"ix":2},"a":{"a":0,"k":[388.298,-522.179,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[884.596,583.642],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[388.298,-522.179],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 46 Outlines","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.414,"y":1},"o":{"x":0.333,"y":0},"t":50,"s":[1734.604,369.297,0],"to":[-132.667,0,0],"ti":[132.667,0,0]},{"t":85,"s":[938.604,369.297,0]}],"ix":2},"a":{"a":0,"k":[628,157,0],"ix":1},"s":{"a":0,"k":[127.07,127.07,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[31.042,-20.027],[31.042,20.027],[-31.042,20.027],[-1.112,-20.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[595.849,198.839],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[50.521,-20.027],[20.591,20.027],[-50.521,20.027],[-20.592,-20.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[524.548,198.839],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[17.119,20.02],[50.906,-20.02],[-20.966,-20.02],[-50.906,20.02]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[438.542,198.835],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[17.119,20.02],[50.906,-20.02],[-20.966,-20.02],[-50.906,20.02]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[349.554,198.835],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[17.119,20.02],[50.906,-20.02],[-20.966,-20.02],[-50.906,20.02]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[263.154,198.835],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[8.923,0],[0,0],[0,0]],"o":[[0,0],[-5.764,6.817],[0,0],[0,0],[0,0]],"v":[[72.444,-34.218],[23.758,23.481],[0.615,34.218],[-72.444,34.218],[-21.27,-34.218]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[141.383,213.032],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[241.11,-18.769],[132.439,-18.769],[-50.444,-18.769],[-241.11,-18.769],[-241.11,-13.262],[-171.267,-13.262],[-171.267,18.769],[-163.353,18.769],[-163.353,-13.262],[-134.071,-13.262],[-134.071,18.769],[-126.157,18.769],[-126.157,-13.262],[-50.444,-13.262],[19.069,-13.262],[19.069,18.769],[26.983,18.769],[26.983,-13.262],[54.683,-13.262],[54.683,18.769],[62.597,18.769],[62.597,-13.262],[132.439,-13.262],[209.735,-13.262],[209.735,18.769],[217.649,18.769],[217.649,-13.262],[241.11,-13.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[385.249,128.816],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[313.32,8.243],[-313.32,8.243],[-313.32,-8.243],[313.32,-8.243]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[313.57,304.687],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[4.481,-4.515],[0,0],[9.646,0],[0,0],[-1.847,2.497],[0,0],[0,0],[0,0],[-5.199,4.07]],"o":[[0,0],[0,0],[-6.328,0],[0,0],[-6.807,6.807],[0,0],[0.821,-2.668],[0,0],[0,0],[0,0],[4.07,-5.439],[0,0]],"v":[[288.812,-49.837],[288.812,16.179],[-130.373,16.179],[-147.271,23.191],[-163.279,39.199],[-188.967,49.837],[-288.812,49.837],[-284.844,42.038],[-278.208,33.179],[-227.037,-35.266],[-226.832,-35.539],[-212.842,-49.837]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.419999994016,0.773000021542,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[338.078,214.078],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-11.733,0],[0,0]],"o":[[0,0],[3.266,9.575],[0,0],[0,0]],"v":[[288.656,-8.573],[-288.656,-8.573],[-264.809,8.573],[288.656,8.573]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.419999994016,0.773000021542,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[338.234,287.86],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[13.459,-10.679],[4.067,-5.441],[0,0],[0.819,-2.691],[-17.672,0],[0,0]],"o":[[0,0],[-17.555,0],[-5.209,4.067],[0,0],[-1.843,2.486],[-4.711,15.361],[0,0],[0,0]],"v":[[291.172,-74.419],[-162.669,-74.419],[-210.477,-57.77],[-224.462,-43.463],[-282.482,34.102],[-286.461,41.913],[-262.294,74.419],[291.172,74.419]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[335.719,222.014],"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":"Group 11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[799.039,311.039,0],"ix":2},"a":{"a":0,"k":[-237.961,-672.961,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":50,"s":[100,100,100]},{"t":60,"s":[0,0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[90.077,90.077],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-237.961,-672.961],"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,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 75","refId":"image_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[178.315,228.907,0],"ix":2},"a":{"a":0,"k":[6.215,8.617,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":50,"s":[127.522,127.522,100]},{"t":80,"s":[0,0,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[263.121,-7.002],[-17.311,-7.002],[-17.311,146.568],[263.121,146.568]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 59","refId":"image_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[179.091,446.915,0],"ix":2},"a":{"a":0,"k":[0,14.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":50,"s":[127.522,127.522,100]},{"t":80,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"Layer 57","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50,"s":[169.88,585.783,0],"to":[0,7.833,0],"ti":[0,-7.833,0]},{"t":77,"s":[169.88,632.783,0]}],"ix":2},"a":{"a":0,"k":[0.97,68.22,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":50,"s":[127.522,127.522,100]},{"t":77,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"Layer 76","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[517.604,215.297,0],"ix":2},"a":{"a":0,"k":[296.687,35.807,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":70,"s":[0,0,100]},{"t":80,"s":[127.07,127.07,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[398.022,-23.98],[193.526,-23.98],[193.526,97.162],[398.022,97.162]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Pre-comp 8","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[520.197,890.168,0],"ix":2},"a":{"a":0,"k":[1737.67,971.715,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":64,"s":[0,0,100]},{"t":87,"s":[126.979,126.979,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2068.809,764.697],[1406.531,764.697],[1406.531,1178.733],[2068.809,1178.733]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3158,"h":2009,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"Pre-comp 7","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56,"s":[512.926,640.455,0],"to":[0,3.333,0],"ti":[0,-3.333,0]},{"t":82,"s":[512.926,660.455,0]}],"ix":2},"a":{"a":0,"k":[799.701,561,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":56,"s":[100,100,100]},{"t":82,"s":[0,0,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1214.402,561],[385,561],[385,911.992],[1214.402,911.992]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3158,"h":2009,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"Layer 58","refId":"image_10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":75,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56,"s":[395.76,990.224,0],"to":[0,8.614,0],"ti":[0,-8.614,0]},{"t":75,"s":[395.76,1041.909,0]}],"ix":2},"a":{"a":0,"k":[166.5,21.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":56,"s":[127.522,127.522,100]},{"t":75,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 50 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[515.718,1055.867,0],"to":[0,2.333,0],"ti":[0,-2.333,0]},{"t":93,"s":[515.718,1069.867,0]}],"ix":2},"a":{"a":0,"k":[267,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":59,"s":[127.522,127.522,100]},{"t":93,"s":[0,0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[18.229,-21.446],[-18.229,-21.446],[-18.229,21.446],[18.229,21.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[468.89,104.728],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[18.229,-21.446],[-18.229,-21.446],[-18.229,21.446],[18.229,21.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[420.279,104.728],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[18.229,-21.446],[-18.229,-21.446],[-18.229,21.446],[18.229,21.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[371.669,104.728],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[18.229,-21.446],[-18.229,-21.446],[-18.229,21.446],[18.229,21.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[323.058,104.728],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[18.229,-21.446],[-18.229,-21.446],[-18.229,21.446],[18.229,21.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[274.447,104.728],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.808,-1.972],[0,0],[2.65,0],[0,0],[0,0],[0,0]],"o":[[0,0],[-1.035,2.457],[0,0],[0,0],[0,0],[2.101,0]],"v":[[8.936,-7.401],[2.699,7.465],[-3.409,11.538],[-9.744,11.538],[-9.744,-11.538],[6.189,-11.538]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[205.541,162.137],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.328],[4.328,0],[0,4.328],[-4.328,0]],"o":[[0,4.328],[-4.328,0],[0,-4.328],[4.328,0]],"v":[[7.837,0],[0,7.837],[-7.837,0],[0,-7.837]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[424.595,186.809],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.517],[7.517,0],[0,7.517],[-7.517,0]],"o":[[0,7.517],[-7.517,0],[0,-7.517],[7.517,0]],"v":[[13.611,0],[0,13.611],[-13.611,0],[0,-13.611]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[424.594,186.809],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-14.694],[14.694,0],[0,14.694],[-14.694,0]],"o":[[0,14.694],[-14.694,0],[0,-14.694],[14.694,0]],"v":[[26.606,0],[0,26.606],[-26.606,0],[0,-26.606]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[424.595,186.809],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.226,-19.132],[0,0],[-19.165,0]],"o":[[0,0],[0.227,-19.132],[19.197,0]],"v":[[34.952,17.274],[-34.952,17.274],[-0.016,-17.274]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.226999993418,0.620000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[424.597,169.118],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.328],[4.328,0],[0,4.328],[-4.328,0]],"o":[[0,4.328],[-4.328,0],[0,-4.328],[4.328,0]],"v":[[7.837,0],[0,7.837],[-7.837,0],[0,-7.837]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.32,186.809],"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":"Group 11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.517],[7.517,0],[0,7.517],[-7.517,0]],"o":[[0,7.517],[-7.517,0],[0,-7.517],[7.517,0]],"v":[[13.611,0],[-0.001,13.611],[-13.611,0],[-0.001,-13.611]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.32,186.809],"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":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-14.694],[14.694,0],[0,14.694],[-14.694,0]],"o":[[0,14.694],[-14.694,0],[0,-14.694],[14.694,0]],"v":[[26.606,0],[0,26.606],[-26.606,0],[0,-26.606]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.321,186.809],"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":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.519,-2.747],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[3.102,0]],"v":[[22.833,-17.872],[0.081,23.948],[-24.352,23.948],[-24.352,20.004],[-12.264,-23.948],[19.246,-23.948]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[220.149,106.503],"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":"Group 14","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.226,-19.132],[0,0],[-19.165,0]],"o":[[0,0],[0.227,-19.132],[19.197,0]],"v":[[34.952,17.274],[-34.952,17.274],[-0.016,-17.274]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.226999993418,0.620000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.323,169.118],"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":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.265],[0,0],[0,0],[4.557,-7.272],[0,0],[9.35,0],[0,0],[0,0],[0,0],[-7.99,0],[0,0]],"o":[[0,0],[0,0],[-8.564,0],[0,0],[-4.968,7.921],[0,0],[0,0],[0,0],[2.294,-7.653],[0,0],[7.265,0]],"v":[[154.415,-45.374],[154.415,13.315],[-97.278,13.315],[-118.35,24.982],[-131.405,45.798],[-154.415,58.528],[-154.415,-1.357],[-142.328,-45.309],[-142.231,-45.633],[-124.904,-58.528],[141.261,-58.528]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[350.212,127.864],"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":"Group 16","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.265],[0,0],[5.447,0],[0,0],[0,0],[0,0],[0,0],[-7.99,0],[0,0]],"o":[[0,0],[0,5.448],[0,0],[0,0],[0,0],[0,0],[2.294,-7.653],[0,0],[7.265,0]],"v":[[154.415,-45.373],[154.415,48.663],[144.551,58.528],[-154.415,58.528],[-154.415,-1.358],[-142.328,-45.31],[-142.231,-45.633],[-124.904,-58.528],[141.26,-58.528]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.226999993418,0.620000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[350.212,127.865],"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":"Group 17","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.423,0],[0,0],[0,5.423],[0,0],[-5.422,0],[0,0],[0,-5.422],[0,0]],"o":[[0,0],[-5.422,0],[0,0],[0,-5.422],[0,0],[5.423,0],[0,0],[0,5.423]],"v":[[-27.321,16.876],[-40.118,16.732],[-49.936,6.913],[-49.936,-6.914],[-40.118,-16.732],[-27.321,-16.589],[-17.503,-6.771],[-17.503,7.057]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[78.969,124.352],"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":"Group 18","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[20.031,0],[0,0],[1.156,-0.111],[1.185,0],[0,0],[0,-20.03],[0,0],[-20.031,0],[0,0],[-1.156,0.111],[-1.186,0],[0,0],[0,20.031],[0,0]],"o":[[0,0],[-1.186,0],[-1.156,-0.111],[0,0],[-20.031,0],[0,0],[0,20.031],[0,0],[1.185,0],[1.156,0.111],[0,0],[20.031,0],[0,0],[0,-20.03]],"v":[[230.264,-126.01],[50.781,-126.01],[47.27,-125.833],[43.759,-126.01],[-230.263,-126.01],[-266.532,-89.742],[-266.532,89.742],[-230.263,126.01],[43.759,126.01],[47.27,125.833],[50.781,126.01],[230.264,126.01],[266.532,89.742],[266.532,-89.742]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.419999994016,0.773000021542,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[266.782,126.26],"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":"Group 19","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"Pre-comp 9","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[520.401,1393.008,0],"ix":2},"a":{"a":0,"k":[1766.726,1387.71,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":64,"s":[0,0,100]},{"t":98,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2185.453,1040],[1348,1040],[1348,1735.421],[2185.453,1735.421]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3158,"h":2009,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 53 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[515.718,1739.902,0],"to":[0,-6.667,0],"ti":[0,6.667,0]},{"t":93,"s":[515.718,1699.902,0]}],"ix":2},"a":{"a":0,"k":[267,253,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":59,"s":[127.522,127.522,100]},{"t":93,"s":[0,0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.423,0],[0,0],[0,5.423],[0,0],[-5.422,0],[0,0],[0,-5.422],[0,0]],"o":[[0,0],[-5.422,0],[0,0],[0,-5.422],[0,0],[5.423,0],[0,0],[0,5.423]],"v":[[-24.185,16.696],[-40.118,16.732],[-49.937,6.913],[-49.937,-6.914],[-40.118,-16.732],[-24.185,-16.769],[-14.366,-6.951],[-14.366,6.877]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[77.562,124.094],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[23.323,-13.476],[-3.184,-13.476],[-23.323,13.476],[23.323,13.476]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[509.991,133.544],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.519,13.471],[34.254,-13.471],[-14.107,-13.471],[-34.254,13.471]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[462.792,133.541],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.519,13.471],[34.254,-13.471],[-14.107,-13.471],[-34.254,13.471]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[402.912,133.541],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.519,13.471],[34.254,-13.471],[-14.107,-13.471],[-34.254,13.471]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[344.775,133.541],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[6.005,0],[0,0],[0,0]],"o":[[0,0],[-3.879,4.587],[0,0],[0,0],[0,0]],"v":[[48.747,-23.025],[15.987,15.799],[0.414,23.025],[-48.746,23.025],[-14.312,-23.025]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[262.837,143.093],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[134.311,-12.629],[-134.311,-12.629],[-134.311,-8.925],[-87.316,-8.925],[-87.316,12.629],[-81.99,12.629],[-81.99,-8.925],[-62.286,-8.925],[-62.286,12.629],[-56.961,12.629],[-56.961,-8.925],[40.759,-8.925],[40.759,12.629],[46.084,12.629],[46.084,-8.925],[64.723,-8.925],[64.723,12.629],[70.048,12.629],[70.048,-8.925],[134.311,-8.925]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[399.003,86.425],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[182.722,-5.547],[-182.722,-5.547],[-182.722,5.547],[182.722,5.547]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[350.593,204.768],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[2.739,-3.66],[0,0],[0,0],[0,0],[0.552,-1.795],[0,0],[-4.58,4.581],[0,0],[-4.258,0],[0,0]],"o":[[0,0],[-3.499,2.739],[0,0],[0,0],[0,0],[-1.243,1.68],[0,0],[6.491,0],[0,0],[3.015,-3.039],[0,0],[0,0]],"v":[[166.23,-33.535],[-115.112,-33.535],[-124.526,-23.913],[-124.664,-23.729],[-159.095,22.326],[-163.56,28.288],[-166.23,33.535],[-99.047,33.535],[-81.762,26.377],[-70.99,15.606],[-59.62,10.887],[166.23,10.887]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.419999994016,0.773000021542,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[367.084,143.797],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-7.895,0],[0,0]],"o":[[0,0],[2.199,6.443],[0,0],[0,0]],"v":[[166.126,-5.768],[-166.126,-5.768],[-150.079,5.769],[166.126,5.769]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.419999994016,0.773000021542,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[367.188,193.444],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[9.056,-7.186],[2.737,-3.661],[0,0],[0.552,-1.811],[-11.891,0],[0,0]],"o":[[0,0],[-11.812,0],[-3.505,2.737],[0,0],[-1.24,1.673],[-3.17,10.336],[0,0],[0,0]],"v":[[167.818,-50.075],[-81.35,-50.075],[-113.52,-38.873],[-122.93,-29.246],[-161.97,22.946],[-164.648,28.202],[-148.386,50.075],[167.818,50.075]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[365.496,149.137],"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":"Group 11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[20.031,0],[0,0],[0.415,-0.015],[0.419,0],[0,0],[0,-20.03],[0,0],[-20.031,0],[0,0],[-0.416,0.014],[-0.419,0],[0,0],[0,20.03],[0,0]],"o":[[0,0],[-0.419,0],[-0.416,-0.015],[0,0],[-20.031,0],[0,0],[0,20.03],[0,0],[0.419,0],[0.415,0.014],[0,0],[20.031,0],[0,0],[0,-20.03]],"v":[[230.264,-126.01],[50.781,-126.01],[49.54,-125.947],[48.299,-126.01],[-230.263,-126.01],[-266.532,-89.742],[-266.532,89.742],[-230.263,126.01],[48.299,126.01],[49.54,125.948],[50.781,126.01],[230.264,126.01],[266.532,89.742],[266.532,-89.742]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.226999993418,0.620000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[266.782,126.26],"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":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"Layer 71","refId":"image_35","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83,"s":[513.648,1807.003,0],"to":[-0.167,-4.5,0],"ti":[0.167,4.5,0]},{"t":100,"s":[512.648,1780.003,0]}],"ix":2},"a":{"a":0,"k":[245.364,53.422,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":83,"s":[0,0,100]},{"t":100,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 55 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[523.395,1811.936,0],"ix":2},"a":{"a":0,"k":[232.5,26.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":83,"s":[127.522,127.522,100]},{"t":100,"s":[0,0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.952],[2.952,0],[0,2.952],[-2.952,0]],"o":[[0,2.952],[-2.952,0],[0,-2.952],[2.952,0]],"v":[[5.345,0],[0,5.345],[-5.345,0],[0,-5.345]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[446.206,22.591],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-10.197],[0,0],[0,22.027],[-10.197,0]],"o":[[0,21.055],[0,0],[0,-10.197],[10.198,0]],"v":[[18.464,-6.316],[0,24.781],[-18.464,-6.316],[0,-24.781]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.745000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[446.206,27.774],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[6.156,0],[0,0],[0,-6.156],[0,0]],"o":[[0,0],[0,-6.156],[0,0],[-6.156,0],[0,0],[0,0]],"v":[[19.716,13.027],[19.716,-1.881],[8.57,-13.027],[-8.57,-13.027],[-19.716,-1.881],[-19.716,13.027]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.745000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233.207,34.988],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-5.036],[5.036,0],[0,5.036],[-5.036,0]],"o":[[0,5.036],[-5.036,0],[0,-5.036],[5.036,0]],"v":[[9.118,0.001],[0,9.118],[-9.118,0.001],[0,-9.118]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.745000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[233.207,9.368],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.323,-23.669],[-24.923,-10.074],[-24.923,23.669],[-8.626,23.669],[-8.626,10.066],[8.628,10.066],[8.628,23.669],[24.923,23.669],[24.923,-10.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.226999993418,0.620000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.172,24.227],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 73 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[517.189,429.905,0],"ix":2},"a":{"a":0,"k":[314,254,0],"ix":1},"s":{"a":0,"k":[133.378,133.378,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-48.058],[0,0],[48.058,0],[0,0],[0,-48.059],[0,0],[-48.058,0],[0,0]],"o":[[0,0],[0,-48.059],[0,0],[-48.058,0],[0,0],[0,-48.058],[0,0],[48.058,0]],"v":[[313.303,-166.477],[313.303,253.461],[226.319,166.477],[-226.285,166.477],[-313.303,253.461],[-313.303,-166.477],[-226.285,-253.461],[226.319,-253.461]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.226999993418,0.620000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[313.553,253.711],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Phone","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[516.579,998.878,0],"ix":2},"a":{"a":0,"k":[418.494,905.887,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[67.757,0],[0,0],[0,67.757],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[0,67.757]],"v":[[295.559,905.637],[-295.559,905.637],[-418.244,782.952],[-418.244,-782.952],[-295.559,-905.637],[295.559,-905.637],[418.244,-782.952],[418.244,782.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.786895273246,0.911418062098,0.954824170879,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.494,905.887],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 40 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1534.697,972.004,0],"ix":2},"a":{"a":0,"k":[16.21,91.993,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.418],[3.419,0],[0,3.418],[-3.418,0]],"o":[[0,3.418],[-3.418,0],[0,-3.418],[3.419,0]],"v":[[6.19,-0.001],[0,6.189],[-6.19,-0.001],[0,-6.189]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.21,159.934],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.814],[8.814,0],[0,8.814],[-8.814,0]],"o":[[0,8.814],[-8.814,0],[0,-8.814],[8.814,0]],"v":[[15.96,-3.922],[0,19.881],[-15.96,-3.922],[0,-19.881]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.054999998504,0.263000009574,0.337000020345,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.209,163.856],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.418],[3.419,0],[0,3.418],[-3.418,0]],"o":[[0,3.418],[-3.418,0],[0,-3.418],[3.419,0]],"v":[[6.19,0],[0,6.19],[-6.19,0],[0,-6.19]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.21,16.209],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.814],[8.814,0],[0,8.814],[-8.814,0]],"o":[[0,8.814],[-8.814,0],[0,-8.814],[8.814,0]],"v":[[15.96,-3.434],[0,19.393],[-15.96,-3.434],[0,-19.393]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.226999993418,0.620000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.209,19.643],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 45 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1777.109,974.696,0],"ix":2},"a":{"a":0,"k":[177.156,1.514,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[176.906,1.264],[-176.906,1.264],[-176.906,-1.264],[176.906,-1.264]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.741000007181,0.745000023935,0.757000014361,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[177.156,1.514],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 41","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1724.041,1060.919,0],"ix":2},"a":{"a":0,"k":[116.986,17.62,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 42","refId":"image_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1730.173,925.161,0],"ix":2},"a":{"a":0,"k":[123.118,17.62,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 43","refId":"image_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1620.874,1020.667,0],"ix":2},"a":{"a":0,"k":[14.36,17.037,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"Layer 44","refId":"image_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1637.045,884.91,0],"ix":2},"a":{"a":0,"k":[30.53,17.038,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"Layer 37","refId":"image_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1534.115,973.52,0],"ix":2},"a":{"a":0,"k":[1.105,32.595,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1733.083,972.969,0],"ix":2},"a":{"a":0,"k":[154.083,-31.531,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[548.166,257.938],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":36,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.083,-31.531],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_4","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 54","refId":"image_9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[815.676,748.825,0],"ix":2},"a":{"a":0,"k":[325.56,143.518,0],"ix":1},"s":{"a":0,"k":[127.522,127.522,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[572.548,66.022],[62.33,66.022],[62.33,193.41],[572.548,193.41]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[801.579,735.166,0],"ix":2},"a":{"a":0,"k":[-775.421,-269.334,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[697.158,234.332],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":41,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-775.421,-269.334],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_5","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 10","refId":"image_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1474.768,1534.342,0],"ix":2},"a":{"a":0,"k":[11.951,11.951,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 14","refId":"image_12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1474.691,1576.741,0],"ix":2},"a":{"a":0,"k":[10.724,12.93,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 21","refId":"image_13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1474.768,1406.475,0],"ix":2},"a":{"a":0,"k":[11.951,11.951,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 22","refId":"image_14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1474.691,1448.873,0],"ix":2},"a":{"a":0,"k":[10.724,12.93,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 28","refId":"image_15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1474.768,1274.068,0],"ix":2},"a":{"a":0,"k":[11.951,11.951,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"Layer 29","refId":"image_16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1474.691,1316.466,0],"ix":2},"a":{"a":0,"k":[10.724,12.93,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"Layer 9","refId":"image_17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1733.862,1491.208,0],"ix":2},"a":{"a":0,"k":[272.631,1.105,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"Layer 15","refId":"image_18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1625.525,1575.566,0],"ix":2},"a":{"a":0,"k":[110.703,15.843,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"Layer 16","refId":"image_19","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1641.386,1533.882,0],"ix":2},"a":{"a":0,"k":[132.24,17.729,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"Layer 17","refId":"image_20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938.788,1532.179,0],"ix":2},"a":{"a":0,"k":[29.392,17.729,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"Layer 20","refId":"image_21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1733.862,1363.342,0],"ix":2},"a":{"a":0,"k":[272.631,1.105,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"Layer 23","refId":"image_22","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1625.525,1447.698,0],"ix":2},"a":{"a":0,"k":[110.703,15.843,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"Layer 24","refId":"image_23","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1638.002,1406.015,0],"ix":2},"a":{"a":0,"k":[128.856,17.729,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"Layer 25","refId":"image_24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938.788,1404.311,0],"ix":2},"a":{"a":0,"k":[29.392,17.729,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":2,"nm":"Layer 27","refId":"image_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1940.417,1446.946,0],"ix":2},"a":{"a":0,"k":[50.187,16.982,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":2,"nm":"Layer 30","refId":"image_26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1625.525,1315.291,0],"ix":2},"a":{"a":0,"k":[110.703,15.843,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":2,"nm":"Layer 31","refId":"image_27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1641.386,1273.607,0],"ix":2},"a":{"a":0,"k":[132.24,17.729,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":2,"nm":"Layer 32","refId":"image_28","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1938.788,1271.904,0],"ix":2},"a":{"a":0,"k":[29.392,17.729,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":2,"nm":"Layer 34","refId":"image_29","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1940.417,1314.539,0],"ix":2},"a":{"a":0,"k":[50.187,16.982,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":2,"nm":"Layer 35","refId":"image_30","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1619.766,1195.825,0],"ix":2},"a":{"a":0,"k":[148.454,24.794,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":2,"nm":"Layer 18","refId":"image_31","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1942.235,1573.702,0],"ix":2},"a":{"a":0,"k":[35.877,16.365,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":2,"nm":"Layer 19","refId":"image_32","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1940.417,1574.814,0],"ix":2},"a":{"a":0,"k":[50.187,16.983,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":2,"nm":"Layer 26","refId":"image_33","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1942.235,1445.833,0],"ix":2},"a":{"a":0,"k":[35.877,16.365,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":2,"nm":"Layer 33","refId":"image_34","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1942.235,1313.427,0],"ix":2},"a":{"a":0,"k":[35.877,16.365,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1759.952,1386.053,0],"ix":2},"a":{"a":0,"k":[180.952,309.553,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[695.904,548.107],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":52,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[180.952,309.553],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_6","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 25","refId":"comp_7","sr":0.9,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[984.848,1000,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"tm":{"a":0,"k":0.156,"ix":2},"w":2000,"h":2000,"ip":0,"op":132,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 25","refId":"comp_7","sr":0.9,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[984.848,1000,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":2000,"h":2000,"ip":132,"op":582,"st":132,"bm":0}]},{"id":"comp_7","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 42","refId":"image_36","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[0]},{"t":75,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[501.996,298.309,0],"to":[0,-11,0],"ti":[0,11,0]},{"t":75,"s":[501.996,232.309,0]}],"ix":2},"a":{"a":0,"k":[101.751,15.668,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":58,"op":558,"st":58,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 20","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[515.038,531.938,0],"ix":2},"a":{"a":0,"k":[3891.033,706.19,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4236.065,428.381],[3546,428.381],[3546,984],[4236.065,984]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":65,"op":565,"st":65,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 37 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[512.552,522.72,0],"ix":2},"a":{"a":0,"k":[182.835,17.203,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.386,0.386,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":61,"s":[0,0,100]},{"t":88,"s":[178.516,178.516,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.329,0],[-0.879,0.742],[0,0],[0,1.376],[1.05,0.89],[0,0],[1.673,-1.973],[-1.97,-1.669],[0,0],[0,0],[-1.667,-1.973]],"o":[[1.066,0],[0,0],[1.05,-0.89],[0,-1.377],[0,0],[-1.972,-1.669],[-1.667,1.972],[0,0],[0,0],[-1.97,1.669],[0.927,1.093]],"v":[[-7.398,17.203],[-4.381,16.098],[10.427,3.571],[12.082,0.001],[10.427,-3.57],[-4.381,-16.097],[-10.972,-15.546],[-10.422,-8.955],[0.167,0.001],[-10.422,8.957],[-10.972,15.548]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[353.59,17.203],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.329,0],[0.879,0.742],[0,0],[0,1.376],[-1.05,0.89],[0,0],[-1.674,-1.973],[1.97,-1.669],[0,0],[0,0],[1.667,-1.973]],"o":[[-1.066,0],[0,0],[-1.05,-0.89],[0,-1.377],[0,0],[1.972,-1.669],[1.667,1.972],[0,0],[0,0],[1.97,1.669],[-0.927,1.093]],"v":[[7.402,17.203],[4.383,16.098],[-10.424,3.571],[-12.08,0.001],[-10.424,-3.57],[4.383,-16.097],[10.975,-15.546],[10.424,-8.955],[-0.164,0.001],[10.424,8.957],[10.975,15.548]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.075,17.203],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":561,"st":61,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"Pre-comp 19","refId":"comp_9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.308],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":69,"s":[0]},{"t":88,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.308,"y":1},"o":{"x":0.333,"y":0},"t":69,"s":[512.749,1085.097,0],"to":[0,-14.59,0],"ti":[0,14.59,0]},{"t":88,"s":[512.749,997.555,0]}],"ix":2},"a":{"a":0,"k":[3888.743,1090.819,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4219.486,987.638],[3558,987.638],[3558,1194],[4219.486,1194]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":69,"op":569,"st":69,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Pre-comp 18","refId":"comp_10","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.308],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":78,"s":[0]},{"t":97,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.308,"y":1},"o":{"x":0.333,"y":0},"t":78,"s":[262.567,1210.398,0],"to":[0,-14.59,0],"ti":[0,14.59,0]},{"t":97,"s":[262.567,1122.856,0]}],"ix":2},"a":{"a":0,"k":[3638.561,1204.884,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3804.122,1127],[3473,1127],[3473,1488.769],[3804.122,1488.769]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":78,"op":578,"st":78,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"Pre-comp 17","refId":"comp_11","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.308],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":74,"s":[0]},{"t":93,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.308,"y":1},"o":{"x":0.333,"y":0},"t":74,"s":[514.484,1210.52,0],"to":[0,-14.59,0],"ti":[0,14.59,0]},{"t":93,"s":[514.484,1122.978,0]}],"ix":2},"a":{"a":0,"k":[3890.478,1205.006,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4053,1130],[3726,1130],[3726,1486],[4053,1486]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":74,"op":574,"st":74,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Pre-comp 16","refId":"comp_12","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.308],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":78,"s":[0]},{"t":97,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.308,"y":1},"o":{"x":0.333,"y":0},"t":78,"s":[766.506,1210.514,0],"to":[0,-14.59,0],"ti":[0,14.59,0]},{"t":97,"s":[766.506,1122.972,0]}],"ix":2},"a":{"a":0,"k":[4142.5,1205,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4306,1130],[3979,1130],[3979,1488],[4306,1488]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":78,"op":578,"st":78,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Pre-comp 15","refId":"comp_13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[517.071,1424.833,0],"ix":2},"a":{"a":0,"k":[3893.066,1493.378,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.46,0.46,0.667],"y":[1,1,1]},"o":{"x":[0.498,0.498,0.333],"y":[0,0,0]},"t":79,"s":[0,0,100]},{"t":98,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4311.131,1433],[3475,1433],[3475,1779.757],[4311.131,1779.757]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":79,"op":574,"st":74,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"Pre-comp 14","refId":"comp_14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[515.358,1782.817,0],"ix":2},"a":{"a":0,"k":[3891.352,1851.362,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":85,"s":[0,0,100]},{"t":99,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4029.204,1731.5],[3753.5,1731.5],[3753.5,1971.225],[4029.204,1971.225]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":74,"op":574,"st":74,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Phone 5","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50,"s":[516.934,532.447,0],"to":[0,125.633,0],"ti":[0,-125.633,0]},{"t":74,"s":[516.934,1286.245,0]}],"ix":2},"a":{"a":0,"k":[418.922,438.681,0],"ix":1},"s":{"a":0,"k":[102.147,102.147,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[54.137,-1.033],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[-63.351,0.967]],"v":[[-417.387,-29.048],[-418.244,-782.952],[-295.559,-905.637],[295.559,-905.637],[418.244,-782.952],[419.101,-29.048]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.843857469746,0.278929018507,0.870711741728,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.494,905.887],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Phone 4","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[516.934,531.189,0],"ix":2},"a":{"a":0,"k":[418.922,438.681,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[54.137,-1.033],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[-63.351,0.967]],"v":[[-417.387,-29.048],[-418.244,-782.952],[-295.559,-905.637],[295.559,-905.637],[418.244,-782.952],[419.101,-29.048]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.340362548828,0.384307861328,0.87451171875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.494,905.887],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"Layer 30","refId":"image_43","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":50,"s":[100]},{"t":64,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50,"s":[249.631,238.051,0],"to":[0,-22.846,0],"ti":[0,22.846,0]},{"t":64,"s":[249.631,100.972,0]}],"ix":2},"a":{"a":0,"k":[36.876,29.23,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"Pre-comp 13","refId":"comp_15","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":52,"s":[100]},{"t":66,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52,"s":[517.973,422.814,0],"to":[0,-22.846,0],"ti":[0,22.846,0]},{"t":66,"s":[517.973,285.735,0]}],"ix":2},"a":{"a":0,"k":[2862.878,639.066,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3279.756,517],[2446,517],[2446,761.133],[3279.756,761.133]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"Layer 26","refId":"image_45","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":54,"s":[100]},{"t":68,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54,"s":[695.313,671.261,0],"to":[0,-22.846,0],"ti":[0,22.846,0]},{"t":68,"s":[695.313,534.182,0]}],"ix":2},"a":{"a":0,"k":[80.323,31.036,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":2,"nm":"Layer 25","refId":"image_46","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[100]},{"t":70,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56,"s":[695.31,839.117,0],"to":[0,-22.846,0],"ti":[0,22.846,0]},{"t":70,"s":[695.31,702.039,0]}],"ix":2},"a":{"a":0,"k":[86.445,29.45,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 55 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58,"s":[100]},{"t":72,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58,"s":[313.524,835.321,0],"to":[0,-22.846,0],"ti":[0,22.846,0]},{"t":72,"s":[313.524,698.242,0]}],"ix":2},"a":{"a":0,"k":[94.364,112.769,0],"ix":1},"s":{"a":0,"k":[157.383,157.383,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.778,-2.503],[-3.08,-0.957],[-19.869,-8.21],[0,0],[-0.097,-0.031],[-1.594,5.132],[5.132,1.594],[0.317,0.064],[0,0],[0,0],[0.573,0]],"o":[[-0.956,3.08],[0,0],[19.868,8.21],[0.095,0.032],[5.133,1.594],[1.595,-5.133],[-0.317,-0.099],[0.014,-0.056],[-14.217,-7.813],[-0.576,-0.179],[-2.49,0]],"v":[[-36.043,-12.913],[-32.199,-5.604],[-7.038,5.687],[22.948,15.31],[23.223,15.427],[35.404,9.02],[28.997,-3.16],[28.044,-3.354],[28.068,-3.449],[-28.735,-16.757],[-30.467,-17.021]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388244628906,0.476135253906,0.894897460938,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[58.023,137.911],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.168,-5.863],[0.002,-0.003],[8.705,-34.755],[-4.641,-2.508],[-2.63,4.527],[0,0],[8.511,4.6],[2.813,0]],"o":[[-0.003,0.003],[-0.142,0.239],[-2.35,4.682],[4.637,2.506],[24.446,-26.473],[4.599,-8.51],[-2.648,-1.43],[-6.227,0]],"v":[[-10.48,-25.158],[-10.486,-25.147],[-22.589,18.926],[-18.541,31.845],[-5.522,28.158],[20.34,-8.502],[13.258,-32.241],[4.945,-34.35]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388244628906,0.476135253906,0.894897460938,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[98.55,121.042],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.747,-2.175],[0.639,-1.86],[0.532,-2.652],[-0.957,-0.517],[-0.586,2.256],[-2.171,2.468],[-1.153,-0.022],[-0.496,0.088],[-0.238,1.241],[-0.238,1.241],[-2.494,0.656],[0,0],[0,0],[1.459,1.257],[0.735,0.063],[0.008,0]],"o":[[-0.755,2.198],[-0.638,1.86],[-0.533,2.653],[0.957,0.517],[0.586,-2.256],[1.577,-1.793],[0.434,0.009],[1.812,-0.323],[0.237,-1.242],[0.238,-1.242],[2.493,-0.656],[0,0],[0,0],[-1.458,-1.257],[-0.008,-0.001],[-0.723,0.001]],"v":[[-2.903,-8.974],[-4.418,-4.013],[-9.312,5.834],[-8.703,13.415],[-5.513,10.732],[-0.76,4.047],[3.024,2.299],[4.401,2.229],[7.074,0.5],[4.605,-1.671],[7.353,-5.263],[9.517,-7.167],[8.053,-7.857],[5.475,-10.255],[-0.824,-13.93],[-0.848,-13.932]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.414581298828,0.371429443359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.095,125.259],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.865,4.994],[0,0],[-0.37,-3.393],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.658,-3.421],[-5.447,-7.318],[-8.288,-0.661],[4.07,7.318]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.312,125.108],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.007,-4.16],[-10.539,-6.524],[-4.592,3.546],[-2.736,11.646],[-0.027,0.108],[0,0]],"o":[[-2.814,5.831],[10.539,6.523],[0,0],[0.026,-0.11],[0,0],[-8.016,5.543]],"v":[[-16.983,-7.414],[-10.825,17.151],[10.696,13.078],[21.279,-10.581],[21.364,-10.88],[-5.164,-23.674]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.390106201172,0.484222412109,0.898040771484,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[105.42,104.44],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.09,3.712],[-2.739,1.061],[-0.899,-1.726],[2.152,-1.487],[0,0]],"o":[[0,0],[2.739,-1.062],[0.899,1.727],[-2.152,1.487],[0,0]],"v":[[-7.864,2.145],[0.017,-4.163],[6.959,-5.585],[5.803,3.43],[-5.173,7.311]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[180.523,53.639],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.779,-2.228],[0.015,0.025],[0.146,-0.076],[1.239,2.378],[-2.377,1.238],[-0.045,0.022],[-9.92,4.073],[0,0],[-0.743,-1.426],[1.427,-0.743]],"o":[[0,0],[-0.135,0.089],[-2.378,1.239],[-1.239,-2.378],[0.046,-0.024],[0,0],[9.919,-4.073],[1.427,-0.743],[0.743,1.427],[0,0]],"v":[[-14.514,12.503],[-14.539,12.461],[-14.944,12.727],[-21.492,10.665],[-19.43,4.118],[-19.291,4.062],[-5.292,-3.065],[18.059,-13.223],[21.988,-11.986],[20.75,-8.057]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.6,69.007],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.021,0.137],[0.001,0.002],[-4.731,0.954],[-0.953,-4.73],[0.92,-17.95],[2.578,-0.52],[0.593,2.545]],"o":[[-0.001,-0.002],[-0.953,-4.731],[4.73,-0.954],[0,0],[0.437,2.575],[-2.579,0.52],[-7.758,-16.099]],"v":[[-9.592,-10.739],[-9.594,-10.745],[-2.755,-21.037],[7.536,-14.199],[9.628,15.902],[5.813,21.471],[0.14,17.811]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[132.103,60.619],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.021,-1.485],[2.419,-3.042],[0,0],[-0.168,0.714],[-2.652,3.036],[2.654,2.019]],"o":[[-1.779,2.59],[0,0],[0.204,-0.713],[1.532,-6.523],[-13.527,-3.252],[-0.644,1.964]],"v":[[-10.646,-8.301],[-17.212,0.328],[10.208,13.553],[10.817,11.415],[17.212,-1.852],[-8.207,-13.553]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[115.882,82.14],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.988,-5.651],[2.403,-7.338],[-13.527,-3.251],[-2.516,2.588],[1.856,8.098],[8.14,1.044],[0.881,0]],"o":[[-3.59,5.086],[2.654,2.018],[2.084,-2.385],[5.72,-5.884],[-1.857,-8.099],[-1.006,-0.129],[-6.247,-0.001]],"v":[[-12.59,-12.504],[-19.046,9.646],[6.372,21.346],[13.327,14.403],[17.129,-3.931],[3.826,-21.152],[0.999,-21.345]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.414581298828,0.371429443359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.722,58.941],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.962,-1.051],[-1.043,-6.903],[0,0],[0,0],[0.029,3.422],[0,0],[0,0],[0,0],[0,0],[3.223,0]],"o":[[-3.398,1.82],[1.043,6.904],[0,0],[0,0],[-0.029,-3.421],[0.374,5.18],[1.484,-4.557],[10.924,-4.721],[-3.466,-3.501],[-4.399,0]],"v":[[-7.334,-12.739],[-12.915,1.048],[-2.919,15.665],[0.034,11.119],[-2.628,7.481],[-0.203,4.131],[4.279,15.896],[3.034,2.328],[13.039,-11.266],[2.781,-15.896]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388244628906,0.476135253906,0.894897460938,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[134.893,16.847],"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":"Group 11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-13.395,-4.107],[-3.164,-6.438],[1.473,-1.844],[7.173,1.569],[1.831,4.889]],"o":[[0,0],[3.165,6.437],[-1.473,1.845],[-7.579,-1.659],[-3.506,-9.363]],"v":[[4.965,-13.759],[12.605,-6.657],[14.127,16.021],[0.413,16.176],[-12.264,2.267]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[137.313,18.116],"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":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.423,4.904],[-1.245,-0.958],[0,0],[0.725,-1.371],[0.823,-1.705],[0,0],[6.144,3.504],[0.06,0.036],[-4.505,2.549]],"o":[[0.437,-1.509],[0,0],[1.229,0.946],[-0.499,0.943],[-2.22,4.602],[-0.959,1.428],[-0.061,-0.035],[-4.445,-2.652],[2.374,-1.343]],"v":[[0.641,-11.17],[3.793,-12.143],[8.904,-8.211],[9.777,-4.211],[7.804,-0.282],[6.644,9.963],[-5.875,9.597],[-6.057,9.491],[-5.888,-2.354]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[132.342,39.639],"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":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-4.341,8.441],[0,0]],"o":[[0,0],[0,0],[4.342,-8.44],[0,0]],"v":[[-9.007,-6.643],[-5.981,8.371],[4.665,2.537],[-1.792,-10.979]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.390106201172,0.484222412109,0.898040771484,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[149.724,16.863],"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":"Group 14","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.926,-2.646],[-2.228,-0.258]],"o":[[0,0],[-1.927,2.646],[2.228,0.258]],"v":[[3.241,-3.543],[-1.307,-2.582],[-1.013,4.97]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.40800000359,0.368999974868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[123.913,9.242],"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":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.568,-1.072],[-1.586,-3.504],[4.397,-2.413],[-1.125,3.297],[6.473,-3.607],[-1.233,6.976],[-1.151,3.055],[0,0],[0,0],[3.278,0.001]],"o":[[-5.481,3.749],[1.587,3.504],[0,0],[0,0],[0,0],[1.233,-6.977],[1.15,-3.054],[0,0],[0,0],[-1.313,0]],"v":[[-2.2,-16.48],[-3.915,-2.36],[-5.638,9.315],[-0.082,6.292],[-6.21,17.935],[5.368,6.95],[2.743,-8.921],[6.332,-7.337],[7.681,-15.548],[2.159,-17.935]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388244628906,0.476135253906,0.894897460938,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[116.569,21.549],"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":"Group 16","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.149,-0.443],[-1.93,-5.015],[-0.147,-0.29],[0,0],[0,0],[-3.01,1.158],[1.159,3.009],[5.876,20.68],[0,0],[0.037,0.096],[3.909,0]],"o":[[-5.016,1.931],[0.12,0.31],[-0.054,0.023],[2.683,15.998],[1.158,3.01],[3.01,-1.159],[0,0],[-5.875,-20.679],[-0.034,-0.095],[-1.489,-3.866],[-1.162,0.001]],"v":[[-13.013,-37.901],[-18.599,-25.323],[-18.159,-24.454],[-18.248,-24.414],[8.473,34.044],[16.019,37.396],[19.37,29.849],[10.684,-2.533],[-0.356,-32.027],[-0.435,-32.316],[-9.519,-38.554]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388244628906,0.476135253906,0.894897460938,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[143.61,169.591],"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":"Group 17","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.08,-2.189],[-5.606,-7.884],[-0.003,-0.003],[-27.342,-23.154],[-4.299,3.058],[2.902,4.359],[0,0],[5.478,0]],"o":[[-7.884,5.606],[0.003,0.004],[0.151,0.233],[3.162,4.177],[4.297,-3.054],[-12.961,-33.621],[-3.416,-4.805],[-3.512,0]],"v":[[-20.049,-29.509],[-24.174,-5.083],[-24.167,-5.073],[11.062,27.622],[24.438,29.693],[26.878,16.384],[4.378,-25.383],[-9.912,-32.751]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388244628906,0.476135253906,0.894897460938,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[115.693,119.183],"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":"Group 18","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.198,-1.887],[0.407,-2.909],[1.945,0.056],[0.251,2.604],[0,0]],"o":[[0,0],[-0.408,2.91],[-1.946,-0.055],[-0.25,-2.603],[0,0]],"v":[[2.976,-7.44],[4.647,2.517],[2.508,9.27],[-4.803,3.871],[-2.846,-7.605]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.603999956916,0.368999974868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[100.387,106.584],"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":"Group 19","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.843,7.879],[-0.029,0.001],[-0.005,0.165],[-2.68,-0.077],[0.076,-2.68],[0.003,-0.05],[1.274,-10.647],[0,0],[1.608,0.046],[-0.046,1.608]],"o":[[0,0],[-0.012,-0.161],[0.076,-2.68],[2.68,0.076],[-0.001,0.051],[0,0],[-1.275,10.647],[-0.045,1.607],[-1.608,-0.046],[0,0]],"v":[[-4.268,-19.289],[-4.22,-19.29],[-4.254,-19.774],[0.736,-24.488],[5.449,-19.498],[5.431,-19.35],[4.837,-3.652],[2.335,21.69],[-0.658,24.518],[-3.486,21.525]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[101.563,78.706],"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":"Group 20","np":2,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.125,0.059],[-0.002,0.001],[-2.233,-4.278],[4.277,-2.233],[17.497,-4.113],[1.217,2.331],[-2.279,1.278]],"o":[[0.002,-0.001],[4.278,-2.233],[2.232,4.278],[0,0],[-2.351,1.136],[-1.217,-2.333],[13.304,-11.933]],"v":[[6.92,-12.388],[6.926,-12.391],[18.714,-8.688],[15.011,3.101],[-13.319,13.488],[-19.729,11.375],[-17.793,4.906]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[117.646,49.62],"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":"Group 21","np":2,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.382,-0.267],[1.037,-0.723],[2.242,1.273],[0,0],[0,0],[-0.166,-1.918],[-0.481,-0.558],[-2.076,1.045],[-1.757,0.884],[-2.235,1.525],[0.323,1.039],[1.995,-1.204],[3.277,-0.25],[1.522,1.035],[0.556,0]],"o":[[-1.038,0.722],[-1.038,0.722],[-2.242,-1.273],[0,0],[0,0],[0.165,1.918],[0.482,0.559],[2.075,-1.046],[1.756,-0.885],[2.234,-1.526],[-0.323,-1.038],[-1.995,1.206],[-3.277,0.249],[-0.961,-0.654],[-0.325,0]],"v":[[-6.764,-8.004],[-6.516,-4.727],[-10.99,-4.075],[-13.87,-4.226],[-13.305,-2.709],[-13.134,0.808],[-11.195,7.837],[-6.245,5.745],[-1.694,3.253],[8.688,-0.375],[13.547,-6.226],[9.389,-6.534],[1.319,-5.07],[-3.646,-7.374],[-5.74,-8.396]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.414581298828,0.371429443359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[171.029,216.891],"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":"Group 22","np":2,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.107,-2.969],[0,0],[-2.105,2.686],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-7.026,-4.081],[0.343,8.561],[7.026,5.782],[3.758,-8.561]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.313999998803,0.125,0.317999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[158.572,206.24],"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":"Group 23","np":2,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Layer 56 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[100]},{"t":74,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[316.316,813.998,0],"to":[0,-22.846,0],"ti":[0,22.846,0]},{"t":74,"s":[316.316,676.919,0]}],"ix":2},"a":{"a":0,"k":[113.367,107.966,0],"ix":1},"s":{"a":0,"k":[157.383,157.383,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.485,-0.011],[0,0],[-48.441,-19.582],[-24.736,30.921],[40.196,19.583],[43.766,-0.004]],"o":[[-45.349,1.03],[-43.803,64.417],[48.442,19.583],[24.736,-30.92],[-39.767,-19.374],[-0.473,0]],"v":[[-11.595,-107.695],[-69.313,-78.836],[-19.841,88.133],[88.38,54.121],[66.737,-41.732],[-10.154,-107.712]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.858825683594,0.933319091797,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[113.367,107.966],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":0,"nm":"Pre-comp 12","refId":"comp_16","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[100]},{"t":69,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60,"s":[702.403,1003.656,0],"to":[0,-13.468,0],"ti":[0,13.468,0]},{"t":69,"s":[702.403,922.848,0]}],"ix":2},"a":{"a":0,"k":[3047.307,1123.909,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3236.615,1042],[2858,1042],[2858,1205.818],[3236.615,1205.818]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":0,"nm":"Pre-comp 11","refId":"comp_17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":66,"s":[514.937,1166.62,0],"to":[0,88.015,0],"ti":[0,-88.015,0]},{"t":88,"s":[514.937,1694.71,0]}],"ix":2},"a":{"a":0,"k":[2863.841,1280.872,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":66,"s":[100,100,100]},{"t":88,"s":[0,0,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3283.683,1216],[2444,1216],[2444,1795.183],[3283.683,1795.183]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":0,"op":93,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":0,"nm":"Pre-comp 10","refId":"comp_18","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[513.799,1778.551,0],"ix":2},"a":{"a":0,"k":[2858.703,1858.804,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":80,"s":[100,100,100]},{"t":88,"s":[0,0,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[3241.406,1768],[2476,1768],[2476,1949.608],[3241.406,1949.608]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4409,"h":2239,"ip":0,"op":94,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Phone","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[516.202,1904.465,0],"ix":2},"a":{"a":0,"k":[418.494,1811.524,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[67.757,0],[0,0],[0,67.757],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[0,67.757]],"v":[[295.559,905.637],[-295.559,905.637],[-418.244,782.952],[-418.244,-782.952],[-295.559,-905.637],[295.559,-905.637],[418.244,-782.952],[418.244,782.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.494,905.887],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_8","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 50","refId":"image_37","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3895.743,744.575,0],"ix":2},"a":{"a":0,"k":[40.591,10.394,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.321,0.321,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":14.5,"s":[0,0,100]},{"t":40.5,"s":[178.516,178.516,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 51","refId":"image_38","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3896.449,695.943,0],"ix":2},"a":{"a":0,"k":[39.031,24.982,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.321,0.321,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":14.5,"s":[0,0,100]},{"t":40.5,"s":[178.516,178.516,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 52 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3891.647,703.18,0],"ix":2},"a":{"a":0,"k":[95.946,95.946,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.321,0.321,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":9,"s":[0,0,100]},{"t":35,"s":[178.516,178.516,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,42.191],[-42.191,0],[0,-42.191]],"o":[[-42.191,0],[0,-42.191],[42.191,0],[0,0]],"v":[[0.001,76.393],[-76.393,0],[0.001,-76.393],[76.393,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.476084211761,0.361413364784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.821,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[95.946,95.946],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 54 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3891.647,703.179,0],"ix":2},"a":{"a":0,"k":[157.412,149.581,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.321,0.321,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":26,"s":[178.516,178.516,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-53.767],[53.767,0],[0,53.767],[-53.766,0]],"o":[[0,53.767],[-53.766,0],[0,-53.767],[53.767,0]],"v":[[97.354,0],[0,97.354],[-97.354,0],[0,-97.354]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[157.412,149.581],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-68.151],[68.151,0],[0,68.151],[-68.151,0]],"o":[[0,68.151],[-68.151,0],[0,-68.151],[68.151,0]],"v":[[123.398,0],[0,123.398],[-123.399,0],[0,-123.398]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.984313964844,0.984313964844,0.984313964844,1],"ix":4},"o":{"a":0,"k":51,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[157.412,149.581],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_9","layers":[{"ddd":0,"ind":1,"ty":5,"nm":"Workout Type","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3761,1097,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[29.985,29.985,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":134,"f":"Helvetica-Light","t":"Workout Type","j":0,"tr":0,"lh":160.8,"ls":0,"fc":[1,1,1]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3891.603,1084.815,0],"ix":2},"a":{"a":0,"k":[1686.603,-34.685,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[452.207,85.63],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":52,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.385406494141,0.352935791016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1686.603,-34.685],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_10","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 67 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3635.616,1291.818,0],"ix":2},"a":{"a":0,"k":[19.739,17.456,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.183,0.522],[0,0],[0,0],[0.473,-0.005],[0.237,0.413],[0,0],[0,0],[0.433,0],[0.054,0.008],[0.168,0.464],[0,0],[0,0],[0.415,0],[0,0],[-4.528,-3.859],[-1.682,-1.471],[-0.296,0],[-0.222,0.194],[-1.428,1.217],[-2.445,3.28]],"o":[[-0.552,0],[0,0],[0,0],[-0.224,0.415],[-0.517,-0.061],[0,0],[0,0],[-0.244,0.364],[-0.051,0],[-0.489,-0.058],[0,0],[0,0],[-0.247,0.333],[0,0],[2.451,3.169],[1.428,1.217],[0.222,0.194],[0.295,0],[1.681,-1.471],[4.683,-3.991],[0,0]],"v":[[7.53,-5.618],[6.299,-6.489],[5.323,-9.259],[2.484,-4.019],[1.354,-3.337],[0.204,-3.994],[-1.355,-6.725],[-4.095,-2.614],[-5.18,-2.033],[-5.338,-2.044],[-6.406,-2.897],[-8.51,-8.739],[-10.646,-5.824],[-11.698,-5.292],[-16.286,-5.292],[-5.65,4.891],[-0.922,8.958],[-0.12,9.259],[0.682,8.958],[5.411,4.891],[16.286,-5.618]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.552999997606,0.579999976065,0.689999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.86,25.402],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.474,-0.067],[-0.163,-0.453],[0,0],[0,0],[-0.453,-0.01],[-0.224,-0.392],[0,0],[0,0],[-0.509,-0.03],[-0.174,-0.486],[0,0],[0,0],[0,2.054],[5.902,0],[1.709,-1.322],[0.642,-1.173],[1.638,1.267],[2.115,0],[0,-6.402],[-1.018,-1.89]],"o":[[0,0],[0.285,-0.385],[0.479,0.068],[0,0],[0,0],[0.249,-0.377],[0.451,0.015],[0,0],[0,0],[0.247,-0.45],[0.514,0.039],[0,0],[0,0],[0.909,-1.79],[0,-6.402],[-2.116,0],[-1.639,1.267],[-0.643,-1.173],[-1.709,-1.322],[-5.902,0],[0,2.179],[0,0]],"v":[[-12.236,7.782],[-9.043,3.426],[-7.807,2.907],[-6.766,3.757],[-4.708,9.471],[-2.234,5.757],[-1.104,5.175],[-0.016,5.833],[1.427,8.36],[4.548,2.598],[5.797,1.921],[6.924,2.787],[8.572,7.456],[18.039,7.456],[19.49,1.76],[9.136,-9.471],[3.372,-7.479],[0,-3.424],[-3.371,-7.479],[-9.135,-9.471],[-19.49,1.76],[-17.865,7.782]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.552999997606,0.579999976065,0.689999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.739,9.721],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 57 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3638.272,1288.024,0],"ix":2},"a":{"a":0,"k":[48.094,48.093,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.011,0],[0,0],[0,12.011],[0,0],[-12.01,0],[0,0],[0,-12.01],[0,0]],"o":[[0,0],[-12.01,0],[0,0],[0,-12.01],[0,0],[12.011,0],[0,0],[0,12.011]],"v":[[26.097,47.843],[-26.097,47.843],[-47.844,26.097],[-47.844,-26.097],[-26.097,-47.843],[26.097,-47.843],[47.844,-26.097],[47.844,26.097]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.894000004787,0.905999995213,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[48.093,48.093],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 66","refId":"image_39","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3635.101,1421.722,0],"ix":2},"a":{"a":0,"k":[27.217,10.394,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_11","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 64 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3890.064,1289.575,0],"ix":2},"a":{"a":0,"k":[22.436,11.33,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[6.925,1.792],[-6.925,1.792],[-6.925,-1.792],[6.925,-1.792]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.436,11.33],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.397,0],[0,0],[0,1.397],[0,0],[1.396,0],[0,0],[0,-1.396],[0,0]],"o":[[0,0],[1.396,0],[0,0],[0,-1.396],[0,0],[-1.397,0],[0,0],[0,1.397]],"v":[[-0.512,7.658],[0.513,7.658],[3.042,5.129],[3.042,-5.13],[0.513,-7.658],[-0.512,-7.658],[-3.042,-5.13],[-3.042,5.129]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.581,11.33],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.68,0],[0,0],[0,1.68],[0,0],[1.68,0],[0,-1.68],[0,0]],"o":[[0,0],[1.68,0],[0,0],[0,-1.68],[-1.68,0],[0,0],[0,1.68]],"v":[[0,11.08],[0,11.08],[3.042,8.038],[3.042,-8.038],[0,-11.08],[-3.042,-8.038],[-3.042,8.038]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[34.087,11.33],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.396,0],[0,0],[0,1.397],[0,0],[-1.396,0],[0,0],[0,-1.396],[0,0]],"o":[[0,0],[-1.396,0],[0,0],[0,-1.396],[0,0],[1.396,0],[0,0],[0,1.397]],"v":[[0.513,7.658],[-0.513,7.658],[-3.042,5.129],[-3.042,-5.13],[-0.513,-7.658],[0.513,-7.658],[3.042,-5.13],[3.042,5.129]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.291,11.33],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.68,0],[0,0],[0,1.68],[0,0],[-1.68,0],[0,-1.68],[0,0]],"o":[[0,0],[-1.68,0],[0,0],[0,-1.68],[1.68,0],[0,0],[0,1.68]],"v":[[0,11.08],[0,11.08],[-3.042,8.038],[-3.042,-8.038],[0,-11.08],[3.042,-8.038],[3.042,8.038]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.787,11.33],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 60 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3891.358,1311.53,0],"ix":2},"a":{"a":0,"k":[71.52,71.52,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-12.01],[0,0],[-12.01,0],[0,0],[0,12.011],[0,0],[12.011,0]],"o":[[-12.01,0],[0,0],[0,12.011],[0,0],[12.011,0],[0,0],[0,-12.01],[0,0]],"v":[[-26.097,-47.843],[-47.843,-26.097],[-47.843,26.096],[-26.097,47.843],[26.096,47.843],[47.843,26.096],[47.843,-26.097],[26.096,-47.843]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.380401611328,0.349060058594,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[71.466,58.353],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 65","refId":"image_40","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3889.599,1421.722,0],"ix":2},"a":{"a":0,"k":[26.395,10.394,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_12","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 63 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[4139.286,1290.095,0],"ix":2},"a":{"a":0,"k":[19.231,19.023,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.386,0],[0,-2.386],[2.386,0],[0,2.387]],"o":[[2.386,0],[0,2.387],[-2.386,0],[0,-2.386]],"v":[[0,-4.321],[4.321,0],[0,4.321],[-4.321,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.552999997606,0.579999976065,0.689999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[21.855,4.571],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-0.733],[1.584,0],[0.288,1.296],[7.649,0.956],[7.375,0],[0,1.584],[-1.584,0],[-3.024,7.432],[2.552,-2.588],[0.807,0],[0,1.584],[-0.519,0.518],[-7.69,0],[0,0],[-1.354,3.975],[-1.296,0],[0.687,-1.889],[6.654,0]],"o":[[0,0],[11.653,2.362],[0,1.585],[-1.383,0],[-0.307,-1.535],[-3.601,5.444],[-1.584,0],[0,-1.585],[8.037,0],[-4.194,0.145],[-0.518,0.519],[-1.584,0],[0,-0.807],[1.197,-1.181],[0,0],[4.177,0],[0.346,-1.181],[1.97,0],[-2.131,6.309],[0,0]],"v":[[3.431,-2.881],[1.904,0.374],[15.586,14.404],[12.706,17.285],[9.883,15.037],[-0.228,5.848],[-16.102,14.404],[-18.982,11.524],[-16.102,8.643],[-2.504,-2.881],[-11.146,2.016],[-13.22,2.881],[-16.102,0.001],[-15.237,-2.074],[-2.216,-8.643],[3.604,-8.643],[12.851,-15.268],[15.586,-17.285],[18.294,-13.424],[3.604,-2.881]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.552999997606,0.579999976065,0.689999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.231,20.511],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 58 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[4140.369,1288.024,0],"ix":2},"a":{"a":0,"k":[48.093,48.093,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.011,0],[0,0],[0,12.011],[0,0],[-12.01,0],[0,0],[0,-12.01],[0,0]],"o":[[0,0],[-12.01,0],[0,0],[0,-12.01],[0,0],[12.011,0],[0,0],[0,12.011]],"v":[[26.097,47.843],[-26.097,47.843],[-47.844,26.097],[-47.844,-26.097],[-26.097,-47.843],[26.097,-47.843],[47.844,-26.097],[47.844,26.097]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.894000004787,0.905999995213,0.972999961703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[48.093,48.093],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 62","refId":"image_41","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[4137.706,1421.722,0],"ix":2},"a":{"a":0,"k":[45.455,10.394,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_13","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 35","refId":"image_42","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3893.68,1605.979,0],"ix":2},"a":{"a":0,"k":[156.405,46.272,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3890.267,1602.367,0],"ix":2},"a":{"a":0,"k":[1685.767,482.867,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[692.534,225.735],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":62,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.384307861328,0.470581054688,0.894104003906,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1685.767,483.805],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,99.16],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_14","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 43 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3900.998,1868.286,0],"ix":2},"a":{"a":0,"k":[52.92,52.92,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[11.729,2.543],[2.723,2.543],[2.723,11.449],[-2.723,11.449],[-2.723,2.543],[-11.729,2.543],[-11.729,-2.542],[-2.723,-2.542],[-2.723,-11.449],[2.723,-11.449],[2.723,-2.542],[11.729,-2.542]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.682,39.822],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-16.198],[16.198,0],[0,16.198],[-16.198,0]],"o":[[0,16.198],[-16.198,0],[0,-16.198],[16.198,0]],"v":[[29.329,0],[0,29.329],[-29.329,0],[0,-29.329]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.40800000359,0.368999974868,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[47.682,39.822],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_15","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 68","refId":"image_44","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2860.963,656.446,0],"ix":2},"a":{"a":0,"k":[186.906,62.64,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_16","layers":[{"ddd":0,"ind":1,"ty":5,"nm":"Details","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2973,1132.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[29.897,29.897,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":134,"f":"Helvetica-Light","t":"Details","j":0,"tr":0,"lh":160.8,"ls":0,"fc":[1,1,1]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3038.462,1119.803,0],"ix":2},"a":{"a":0,"k":[833.962,0.303,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[310.925,83.606],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":82,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.903987989239,0.903987989239,0.903987989239,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.958350088082,0.415527942134,0.347643205231,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[833.962,0.303],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_17","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 15 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3083.31,1474.181,0],"ix":2},"a":{"a":0,"k":[36.717,28.713,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-5.879],[5.88,0],[0,5.879],[-5.879,0]],"o":[[0,5.879],[-5.879,0],[0,-5.879],[5.88,0]],"v":[[10.646,0],[-0.001,10.645],[-10.646,0],[-0.001,-10.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.717,28.713],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-10.078],[-10.079,0],[0,10.079],[10.078,0]],"o":[[0,10.079],[10.078,0],[0,-10.078],[-10.079,0]],"v":[[-18.25,0],[0,18.249],[18.25,0],[0,-18.249]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.998168945313,0.480102539063,0.415313720703,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.717,28.713],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 16 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3054.828,1555.142,0],"ix":2},"a":{"a":0,"k":[131.882,138.335,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-46.926,26.07],[-24.767,52.14],[0,0]],"o":[[0,0],[46.926,-26.07],[24.766,-52.14],[0,0]],"v":[[-102.977,108.191],[-58.658,24.767],[33.891,-52.14],[105.584,-108.191]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.821,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[125.243,127.743],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 14","refId":"image_47","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3039.235,1343.316,0],"ix":2},"a":{"a":0,"k":[43.54,9.401,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 17 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2586.794,1610.635,0],"ix":2},"a":{"a":0,"k":[9.103,11.393,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.578,0.96],[-0.08,0.142],[0.116,0.201],[0.233,0],[1.115,-1.147],[-0.038,-1.303],[0,-0.093],[-0.137,-0.788],[-0.014,-0.345],[0.003,-0.003],[0.216,0],[0.161,0.181],[-0.12,1.05],[0.124,0.139],[0.186,0],[0,-2.479],[-0.462,-1.085],[-0.81,-0.818],[-2.352,0],[-1.676,1.681],[0,2.351]],"o":[[-3.978,-2.42],[0.117,-0.202],[-0.117,-0.202],[-2.047,0],[-1.904,1.961],[0.004,0.145],[0,0.968],[0.088,0.508],[0.014,0.369],[-0.01,0.012],[-0.247,0],[-0.631,-0.707],[0.022,-0.185],[-0.123,-0.139],[-1.695,0],[0,1.165],[0.447,1.05],[1.687,1.706],[2.361,0],[1.672,-1.677],[0,-3]],"v":[[4.928,-4.187],[2.895,-10.165],[2.895,-10.817],[2.329,-11.143],[-2.437,-9.414],[-4.215,-3.099],[-4.207,-2.737],[-3.915,-0.088],[-3.737,1.203],[-3.793,1.66],[-4.099,1.714],[-4.689,1.453],[-5.243,-2.233],[-5.404,-2.742],[-5.891,-2.961],[-8.853,2.29],[-8.157,5.682],[-6.263,8.498],[0,11.143],[6.26,8.536],[8.853,2.29]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.103,11.393],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 18 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2699.361,1554.849,0],"ix":2},"a":{"a":0,"k":[72.562,0.326,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,0.326],[145.124,0.326]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.652,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 19 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2699.361,1433.847,0],"ix":2},"a":{"a":0,"k":[72.562,0.326,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,0.326],[145.124,0.326]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.652,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 20 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2589.703,1490.603,0],"ix":2},"a":{"a":0,"k":[10.84,9.6,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.208,0],[0.929,-0.718],[0.35,-0.638],[0.891,0.689],[1.149,0],[0,-3.48],[-4.569,-3.893],[-0.914,-0.799],[-0.16,0],[-0.12,0.106],[-0.777,0.661],[0,3.759]],"o":[[-1.149,0],[-0.891,0.689],[-0.349,-0.638],[-0.929,-0.718],[-3.208,0],[0,3.759],[0.775,0.662],[0.12,0.106],[0.161,0],[0.914,-0.799],[4.568,-3.893],[0,-3.48]],"v":[[4.965,-9.35],[1.833,-8.268],[0,-6.064],[-1.833,-8.268],[-4.964,-9.35],[-10.591,-3.247],[-3.005,6.976],[-0.435,9.186],[0,9.35],[0.435,9.186],[3.005,6.976],[10.591,-3.247]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.84,9.6],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 22 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2586.474,1366.063,0],"ix":2},"a":{"a":0,"k":[10.601,15.266,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.356,0.167],[0,0],[-0.042,0.195],[0,0],[0.843,1.251],[0.007,0.004],[0.008,0.006],[1.283,-0.858],[-1.042,-4.839],[0,0]],"o":[[0,0],[0.18,-0.084],[0,0],[0.258,-1.769],[-0.633,-0.939],[-0.009,-0.005],[-0.805,-0.557],[-2.187,1.462],[0,0],[0.106,0.379]],"v":[[-1.242,7.772],[2.33,6.1],[2.682,5.656],[4.166,-1.268],[3.284,-5.82],[1.921,-7.188],[1.894,-7.205],[-1.58,-7.081],[-3.382,2.831],[-2.125,7.367]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[4.674,8.19],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.404,-0.18],[0,0],[-0.017,-0.266],[0,0],[-1.213,0.08],[0.08,1.213],[0,0]],"o":[[0,0],[-0.243,0.108],[0,0],[0.08,1.213],[1.213,-0.08],[0,0],[-0.029,-0.441]],"v":[[1.164,-2.457],[-1.884,-1.101],[-2.26,-0.478],[-2.195,0.505],[0.146,2.557],[2.197,0.215],[2.057,-1.918]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.583,20.348],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.18,-0.085],[0,0],[-0.106,0.379],[0,0],[2.184,1.465],[0.806,-0.555],[0.009,-0.006],[0.634,-0.938],[-0.255,-1.77],[0,0]],"o":[[0,0],[0.356,0.167],[0,0],[1.051,-4.837],[-1.281,-0.86],[-0.009,0.006],[-0.006,0.003],[-0.846,1.25],[0,0],[0.041,0.194]],"v":[[-2.346,6.093],[1.223,7.773],[2.106,7.368],[3.372,2.836],[1.589,-7.08],[-1.885,-7.21],[-1.913,-7.192],[-3.277,-5.828],[-4.168,-1.277],[-2.697,5.65]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.53,15.572],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.077,1.152],[0,0],[0.244,0.109],[0,0],[0.029,-0.442],[0,0],[-1.212,-0.084]],"o":[[1.155,0],[0,0],[0.018,-0.266],[0,0],[-0.404,-0.18],[0,0],[-0.08,1.212],[0,0]],"v":[[0.005,2.597],[2.193,0.55],[2.26,-0.433],[1.884,-1.057],[-1.159,-2.417],[-2.054,-1.88],[-2.198,0.253],[-0.151,2.597]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.594,27.685],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"Layer 21","refId":"image_48","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2739.316,1491.999,0],"ix":2},"a":{"a":0,"k":[49.221,99.595,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2864.975,1499.328,0],"ix":2},"a":{"a":0,"k":[660.475,379.828,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[693.949,442.656],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":68,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.388244628906,0.48095703125,0.898040771484,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[660.475,379.828],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_18","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 61 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3116.783,1859.66,0],"ix":2},"a":{"a":0,"k":[12.201,12.201,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,-0.524],[0,0],[0.915,-0.568],[0,0],[0.37,-0.37],[0,0],[-0.37,-0.37],[0,0],[0.252,-1.079],[0,0],[0,-0.523],[0,0],[-0.524,0],[0,0],[-0.568,-0.915],[0,0],[-0.37,-0.37],[0,0],[-0.37,0.37],[0,0],[-1.079,-0.252],[0,0],[-0.523,0],[0,0],[0,0.523],[0,0],[-0.914,0.568],[0,0],[-0.37,0.37],[0,0],[0.37,0.37],[0,0],[-0.252,1.078],[0,0],[0,0.523],[0,0],[0.523,0],[0,0],[0.568,0.914],[0,0],[0.37,0.37],[0,0],[0.37,-0.37],[0,0],[1.079,0.252],[0,0],[0.523,0]],"o":[[-0.523,0],[0,0],[-1.079,0.252],[0,0],[-0.37,-0.37],[0,0],[-0.37,0.37],[0,0],[-0.569,0.914],[0,0],[-0.524,0],[0,0],[0,0.523],[0,0],[0.252,1.078],[0,0],[-0.37,0.37],[0,0],[0.37,0.37],[0,0],[0.915,0.568],[0,0],[0,0.523],[0,0],[0.523,0],[0,0],[1.079,-0.252],[0,0],[0.37,0.37],[0,0],[0.37,-0.37],[0,0],[0.568,-0.915],[0,0],[0.523,0],[0,0],[0,-0.523],[0,0],[-0.252,-1.079],[0,0],[0.37,-0.37],[0,0],[-0.37,-0.37],[0,0],[-0.914,-0.568],[0,0],[0,-0.524],[0,0]],"v":[[139.191,405.923],[138.244,406.871],[138.244,408.084],[135.239,409.329],[134.382,408.47],[133.042,408.47],[131.135,410.377],[131.135,411.717],[131.994,412.575],[130.749,415.579],[129.536,415.579],[128.588,416.526],[128.588,419.223],[129.536,420.17],[130.749,420.17],[131.993,423.175],[131.135,424.032],[131.135,425.372],[133.042,427.278],[134.382,427.278],[135.239,426.421],[138.244,427.665],[138.244,428.879],[139.191,429.826],[141.888,429.826],[142.835,428.879],[142.835,427.665],[145.839,426.421],[146.697,427.278],[148.037,427.278],[149.943,425.372],[149.943,424.032],[149.086,423.175],[150.33,420.17],[151.544,420.17],[152.49,419.223],[152.49,416.526],[151.544,415.579],[150.33,415.579],[149.086,412.575],[149.943,411.717],[149.943,410.377],[148.037,408.47],[146.697,408.47],[145.839,409.329],[142.835,408.084],[142.835,406.871],[141.888,405.923]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,2.657],[-2.656,0],[0,-2.656],[2.657,0]],"o":[[0,-2.656],[2.657,0],[0,2.657],[-2.656,0]],"v":[[135.73,417.874],[140.539,413.065],[145.349,417.874],[140.539,422.684]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352935791016,0.411773681641,0.87841796875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-128.338,-405.673],"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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 68 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2994.089,1858.612,0],"ix":2},"a":{"a":0,"k":[10.678,12.199,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-4.86],[0,0],[0,-0.921],[-0.961,0],[0,0],[0,0.96],[0.907,0.058],[0,0],[4.859,0]],"o":[[0,0],[-0.907,0.058],[0,0.96],[0,0],[0.96,0],[0,-0.921],[0,0],[0,-4.86],[-4.859,0]],"v":[[-8.798,-3.15],[-8.798,8.495],[-10.428,10.21],[-8.689,11.949],[8.69,11.949],[10.428,10.21],[8.798,8.495],[8.798,-3.15],[0,-11.949]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352935791016,0.411773681641,0.87841796875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.678,12.199],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 69 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2866.026,1855.756,0],"ix":2},"a":{"a":0,"k":[12.161,14.349,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2.13,1.443],[2.13,1.443],[2.13,-1.443],[-2.13,-1.443]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352935791016,0.411773681641,0.87841796875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.162,1.693],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.09,-0.037],[-0.153,-0.376],[0,0],[-0.436,-1.074],[-1.312,0.533],[0.534,1.312],[1.098,-0.104],[0,0],[0.289,0]],"o":[[-0.375,0.153],[0,0],[-0.86,0.691],[0.534,1.313],[1.312,-0.533],[-0.437,-1.075],[0,0],[-0.115,-0.285],[-0.092,0]],"v":[[-2.209,-4.087],[-2.612,-3.132],[-1.648,-0.758],[-2.425,2.197],[0.917,3.607],[2.327,0.266],[-0.29,-1.31],[-1.255,-3.684],[-1.933,-4.141]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352935791016,0.411773681641,0.87841796875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.237,16.121],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-6.578],[-6.579,0],[0,6.579],[6.579,0]],"o":[[0,6.579],[6.579,0],[0,-6.578],[-6.579,0]],"v":[[-11.84,417.874],[0.072,429.787],[11.983,417.874],[0.072,405.963]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,4.524],[-4.523,0],[0,-4.522],[4.522,0]],"o":[[0,-4.522],[4.522,0],[0,4.524],[-4.523,0]],"v":[[-8.117,417.874],[0.072,409.685],[8.261,417.874],[0.072,426.063]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352935791016,0.411773681641,0.87841796875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.09,-401.339],"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":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 70 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2741.709,1856.395,0],"ix":2},"a":{"a":0,"k":[11.547,13.992,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.066,-6.19],[0,0],[6.204,0]],"o":[[0,0],[-0.066,-6.19],[-6.205,0]],"v":[[-11.297,5.595],[11.297,5.595],[0,-5.595]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352935791016,0.411773681641,0.87841796875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.547,22.138],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.72],[-3.719,0],[0,3.719],[3.719,0]],"o":[[0,3.719],[3.719,0],[0,-3.72],[-3.719,0]],"v":[[-6.735,0],[0,6.735],[6.735,0],[0,-6.735]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352935791016,0.411773681641,0.87841796875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.547,6.985],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 71 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2609.315,1856.428,0],"ix":2},"a":{"a":0,"k":[15.678,13.973,0],"ix":1},"s":{"a":0,"k":[178.516,178.516,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.258,-0.226],[0,0],[-0.578,0],[0,0],[0,0],[-0.768,0],[0,0],[0,0.56],[0,0],[0,0],[0,0],[-0.56,0],[0,0],[0,0.767],[0,0],[0,0],[0.436,0.381],[0,0],[0.322,0]],"o":[[0,0],[-0.435,0.381],[0,0],[0,0],[0,0.767],[0,0],[0.56,0],[0,0],[0,0],[0,0],[0,0.56],[0,0],[0.767,0],[0,0],[0,0],[0.578,0],[0,0],[-0.258,-0.226],[-0.322,0]],"v":[[-144.632,402.679],[-158.724,415.019],[-158.311,416.117],[-154.847,416.117],[-154.847,428.397],[-153.457,429.787],[-149.128,429.787],[-148.113,428.771],[-148.113,420.488],[-139.349,420.488],[-139.349,428.771],[-138.334,429.787],[-134.005,429.787],[-132.615,428.397],[-132.615,416.117],[-129.151,416.117],[-128.739,415.019],[-142.83,402.679],[-143.731,402.341]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.352935791016,0.411773681641,0.87841796875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.409,-402.091],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_19","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 24","refId":"comp_20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[984.848,1000,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"tm":{"a":0,"k":0.08,"ix":2},"w":2000,"h":2000,"ip":0,"op":200,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 24","refId":"comp_20","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[984.848,1000,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":2000,"h":2000,"ip":200,"op":700,"st":200,"bm":0}]},{"id":"comp_20","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 43","refId":"image_49","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":61,"s":[0]},{"t":72,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":61,"s":[516.365,764.899,0],"to":[0,-18,0],"ti":[0,18,0]},{"t":72,"s":[516.365,656.899,0]}],"ix":2},"a":{"a":0,"k":[163.942,35.937,0],"ix":1},"s":{"a":0,"k":[183.384,183.384,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 59 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[516.472,979.569,0],"ix":2},"a":{"a":0,"k":[202.5,89.55,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":65,"s":[0,0,100]},{"t":75,"s":[183.384,183.384,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-20.492,3.373],[-12.032,-0.976],[-8.004,-2.131],[-9.894,-0.517],[-18.09,8.819],[-10.595,6.792],[-12.58,-1.858],[-10.114,-7.434],[-12.896,-3.57],[-11.899,5.974]],"o":[[16.996,11.534],[11.902,-1.959],[8.275,0.671],[9.552,2.541],[20.245,1.059],[11.355,-5.536],[10.595,-6.792],[12.574,1.857],[10.668,7.841],[12.897,3.57],[0,0]],"v":[[-191.111,2.779],[-131.818,15.687],[-96.208,10.125],[-72.157,16.191],[-42.777,20.18],[16.673,11.607],[48.165,-9.118],[83.907,-19.381],[116.76,-1.521],[151.913,16.901],[191.111,14.343]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.905999995213,0.6,0.583999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.839,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[202.159,69.593],"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":"Group 18","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.68,0],[0,0],[0,15.68],[0,0],[-15.68,0],[0,0],[0,-15.68],[0,0]],"o":[[0,0],[-15.68,0],[0,0],[0,-15.68],[0,0],[15.68,0],[0,0],[0,15.68]],"v":[[173.772,84.2],[-173.772,84.2],[-202.163,55.809],[-202.163,-55.809],[-173.772,-84.2],[173.772,-84.2],[202.163,-55.809],[202.163,55.809]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.238999998803,0.286000001197,0.383999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[202.16,84.2],"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":"Group 19","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 41 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[516.472,1147.366,0],"ix":2},"a":{"a":0,"k":[202.5,181.05,0],"ix":1},"s":{"a":0,"k":[183.384,183.384,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":70,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-3.053,173.574],[3.514,173.574],[3.514,200.319],[-3.053,200.319]],"c":true}]},{"t":85,"s":[{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[404.289,172.483],[-2.484,172.483],[-2.484,199.228],[404.289,199.228]],"c":true}]}],"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.342,0],[0,-3.341],[-3.342,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[393.097,186.052],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.342,0],[0,-3.341],[-3.342,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[369.208,186.052],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.342,0],[0,-3.341],[-3.342,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[345.319,186.052],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.342,0],[0,-3.341],[-3.342,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[321.43,186.052],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[297.542,186.052],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.342,0],[0,-3.341],[-3.342,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[273.652,186.052],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[249.764,186.052],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.342,0],[0,-3.341],[-3.342,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[225.874,186.052],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[201.986,186.052],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[178.097,186.052],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.208,186.052],"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":"Group 11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[130.319,186.052],"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":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[106.43,186.052],"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":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[82.541,186.052],"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":"Group 14","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[58.652,186.052],"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":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.845,0]],"o":[[0,-1.845],[-1.845,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[34.763,186.052],"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":"Group 16","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.845],[1.845,0],[0,-1.845],[-1.846,0]],"o":[[0,-1.845],[-1.846,0],[0,1.845],[1.845,0]],"v":[[3.341,0],[0,-3.341],[-3.341,0],[0,3.341]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.874,186.052],"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":"Group 17","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 57 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[516.472,1524.014,0],"ix":2},"a":{"a":0,"k":[154,130.181,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":76,"s":[183.384,0,100]},{"t":89,"s":[183.384,183.384,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[296.198,126.648],[296.198,91.746]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.098,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[249.096,126.648],[249.096,77.833]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.098,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[201.993,126.648],[201.993,56.845]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.098,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[154.891,126.648],[154.891,3.549]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.098,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[107.788,126.648],[107.788,77.833]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.098,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[60.686,126.648],[60.686,3.549]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.098,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[13.583,126.648],[13.583,29.018]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7.098,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 44","refId":"image_50","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":86,"s":[0]},{"t":96,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86,"s":[525.295,1615.015,0],"to":[0,-9.333,0],"ti":[0,9.333,0]},{"t":96,"s":[525.295,1559.015,0]}],"ix":2},"a":{"a":0,"k":[154,149.267,0],"ix":1},"s":{"a":0,"k":[183.384,183.384,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[347.271,132.534],[-50.649,132.534],[-50.649,187.975],[347.271,187.975]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 42 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[508.322,348.217,0],"ix":2},"a":{"a":0,"k":[107.798,107.798,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":60,"s":[0,0,100]},{"t":73,"s":[183.384,183.384,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-21.928,0],[0,43.856],[43.856,0]],"o":[[14.37,14.37],[43.856,0],[0,-43.856],[0,0]],"v":[[-67.779,56.15],[-11.63,79.409],[67.779,0.001],[-11.63,-79.409]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.905999995213,0.6,0.583999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":11.356,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[119.427,107.798],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,43.856],[43.856,0],[0,-43.856],[-43.856,0]],"o":[[0,-43.856],[-43.856,0],[0,43.856],[43.856,0]],"v":[[79.409,0],[-0.001,-79.408],[-79.409,0],[-0.001,79.408]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.238999998803,0.286000001197,0.383999992819,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":11.356,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[107.798,107.799],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.698,-1.61],[-2.698,1.61]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.129,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[118.921,108.815],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[3.143,-1.875],[-3.143,1.875]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.129,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[112.413,95.622],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[3.143,-1.875],[-3.143,1.875]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.129,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[115.556,102.004],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-0.558,-0.581],[-27.44,5.216],[-0.893,1.717],[0.055,1.3]],"o":[[0,0],[-0.549,0.589],[5.379,5.607],[1.901,-0.361],[0.445,-0.854],[0,0]],"v":[[-29.696,-19.217],[-33.142,-15.52],[-33.132,-13.437],[28.714,14.001],[33.021,10.524],[33.636,7.1]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.129,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[107.223,117.816],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.888,-0.722],[5.211,-0.542]],"o":[[0,0],[-2.889,0.722],[0,0]],"v":[[7.598,2.678],[2.196,-6.629],[-7.598,7.351]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.129,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[104.376,84.689],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.535,-7.061],[0,0],[-3.012,1.604],[-0.032,-1.147],[-5.848,-1.925],[-9.093,7.061],[-3.209,-8.826],[-3.45,-0.161]],"o":[[-32.95,8.131],[1.443,-10.962],[1.013,-0.539],[0.073,2.619],[0,0],[0,0],[3.209,8.826],[3.45,0.16]],"v":[[31.667,17.768],[-31.667,-8.548],[-22.356,-25.361],[-20.056,-24.082],[-13.052,-15.288],[2.781,-19.782],[10.778,-4.136],[20.888,10.066]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.129,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[109.192,107.148],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 58 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":50,"s":[0]},{"t":65,"s":[187]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50,"s":[507.425,245.243,0],"to":[0,17.833,0],"ti":[0,-17.833,0]},{"t":65,"s":[507.425,352.243,0]}],"ix":2},"a":{"a":0,"k":[78,79.898,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":50,"s":[100,100,100]},{"t":65,"s":[0,0,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.889,5.889],[-5.889,5.889],[-5.889,-5.889]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.839,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[135.904,18.876],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[5.889,5.889],[-5.889,5.889],[-5.889,-5.889]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.839,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[141.793,12.986],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-29.055,29.055],[29.055,-29.055]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.839,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[106.849,47.931],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.423,0],[0,5.423],[-5.423,0],[0,-5.423]],"o":[[-5.423,0],[0,-5.423],[5.423,0],[0,5.423]],"v":[[0.001,9.834],[-9.834,0],[0.001,-9.834],[9.834,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.839,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[77.793,76.987],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.32,0],[0,14.319],[-14.322,0],[0,-14.32]],"o":[[-14.322,0],[0,-14.32],[14.32,0],[0,14.319]],"v":[[0.001,25.97],[-25.97,0],[0.001,-25.97],[25.97,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.839,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[77.793,76.987],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[23.216,0],[0,23.217],[-23.218,0],[0,-23.217]],"o":[[-23.218,0],[0,-23.217],[23.216,0],[0,23.217]],"v":[[0.001,42.106],[-42.106,0.001],[0.001,-42.106],[42.106,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.839,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[77.793,76.987],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,32.166],[32.166,0],[0,-32.166],[-32.166,0]],"o":[[0,-32.166],[-32.166,0],[0,32.166],[32.166,0]],"v":[[58.242,0],[0,-58.242],[-58.242,0],[0,58.242]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.969000004787,0.969000004787,0.969000004787,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.839,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[77.794,76.986],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"Layer 53","refId":"image_51","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":50,"s":[100]},{"t":56,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50,"s":[507.425,341.557,0],"to":[0,17.833,0],"ti":[0,-17.833,0]},{"t":65,"s":[507.425,448.557,0]}],"ix":2},"a":{"a":0,"k":[78,176.212,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[173.545,145.424],[-20.425,145.424],[-20.425,216.655],[173.545,216.655]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"Layer 27","refId":"image_52","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[332.191,813.959,0],"ix":2},"a":{"a":0,"k":[96,224,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":52,"s":[162.627,162.627,100]},{"t":68,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":2,"nm":"Layer 26","refId":"image_53","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[683.441,813.959,0],"ix":2},"a":{"a":0,"k":[96,224,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":52,"s":[162.627,162.627,100]},{"t":68,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":2,"nm":"Layer 25","refId":"image_54","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[332.191,1213.849,0],"ix":2},"a":{"a":0,"k":[96,224,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":58,"s":[162.627,162.627,100]},{"t":74,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"Layer 24","refId":"image_55","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[683.441,1213.849,0],"ix":2},"a":{"a":0,"k":[96,224,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":58,"s":[162.627,162.627,100]},{"t":74,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"Layer 29","refId":"image_56","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[332.191,1613.739,0],"ix":2},"a":{"a":0,"k":[96,224,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":66,"s":[162.627,162.627,100]},{"t":82,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"Layer 28","refId":"image_57","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[683.441,1613.739,0],"ix":2},"a":{"a":0,"k":[96,224,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":66,"s":[162.627,162.627,100]},{"t":82,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":0,"nm":"Pre-comp 21","refId":"comp_21","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[519.579,1774.224,0],"ix":2},"a":{"a":0,"k":[3897.428,1963.252,0],"ix":1},"s":{"a":0,"k":[85,85,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[4370.855,1819],[3424,1819],[3424,2107.504],[4370.855,2107.504]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":4387,"h":2343,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Phone","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[515.258,1000.553,0],"ix":2},"a":{"a":0,"k":[418.494,905.887,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[67.757,0],[0,0],[0,67.757],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[0,67.757]],"v":[[295.559,905.637],[-295.559,905.637],[-418.244,782.952],[-418.244,-782.952],[-295.559,-905.637],[295.559,-905.637],[418.244,-782.952],[418.244,782.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.156860351563,0.235290527344,0.352935791016,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.494,905.887],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_21","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 36 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3894.114,1985.08,0],"ix":2},"a":{"a":0,"k":[236.131,50.292,0],"ix":1},"s":{"a":0,"k":[183.384,183.384,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,5.356],[5.355,0],[0,-5.355],[-5.356,0]],"o":[[0,-5.355],[-5.356,0],[0,5.356],[5.355,0]],"v":[[9.697,0],[0,-9.697],[-9.697,0],[0,9.697]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.852,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[179.854,37.919],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,2.518],[2.518,0],[0,-2.518],[-2.518,0]],"o":[[0,-2.518],[-2.518,0],[0,2.518],[2.518,0]],"v":[[4.56,-0.001],[0,-4.56],[-4.56,-0.001],[0,4.56]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.852,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[179.854,37.92],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,8.195],[8.195,0],[0,-8.194],[-8.195,0]],"o":[[0,-8.194],[-8.195,0],[0,8.195],[8.195,0]],"v":[[14.838,0],[0,-14.838],[-14.838,0],[0,14.838]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.238999998803,0.286000001197,0.383999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[179.854,37.919],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,3.182],[3.182,0],[0,-3.182],[-3.183,0]],"o":[[0,-3.182],[-3.183,0],[0,3.182],[3.182,0]],"v":[[5.762,0],[0,-5.762],[-5.762,0],[0,5.762]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.238999998803,0.286000001197,0.383999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[398.48,28.372],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[5.267,2.03],[1.665,0],[1.306,0.834],[0.994,-5.754],[-9.29,0]],"o":[[-0.994,-5.754],[-1.307,0.834],[-1.664,0],[-5.267,2.03],[0,0],[9.291,0]],"v":[[14.113,2.984],[4.518,-8.94],[0,-7.615],[-4.517,-8.94],[-14.113,2.984],[0,8.94]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.238999998803,0.286000001197,0.383999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[398.479,44.688],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.437,0.455],[0,0],[0,0],[-0.63,-0.001],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-0.444,0.447],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.631,0]],"v":[[13.451,0.085],[0.22,-13.676],[-13.444,0.086],[-12.942,1.294],[-11.297,1.296],[-11.297,13.676],[-3.415,13.676],[-3.415,2.996],[3.549,2.996],[3.549,13.676],[11.449,13.676],[11.449,1.296],[12.935,1.296]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.238999998803,0.286000001197,0.383999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[72.166,36.743],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[0,-13.616],[4.424,-4.652],[14.316,-3.214],[7.158,3.763],[8.848,13.616],[0,8.964],[-8.848,13.616],[-7.158,3.763],[-14.316,-3.214],[-4.424,-4.652]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.905999995213,0.6,0.583999992819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[290.118,36.226],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[3893.34,1963.995,0],"ix":2},"a":{"a":0,"k":[1699.84,792.495,0],"ix":1},"s":{"a":0,"k":[113.649,113.649,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[732.679,145.989],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":443,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.623534976735,0.141174002255,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.968627929688,0.968627929688,0.968627929688,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[1699.84,792.495],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_22","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 23","refId":"comp_23","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[991.583,1000,0],"ix":2},"a":{"a":0,"k":[1000,1000,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":2000,"h":2000,"ip":164,"op":664,"st":164,"bm":0}]},{"id":"comp_23","layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Pre-comp 1","refId":"comp_24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.223,283.62,0],"ix":2},"a":{"a":0,"k":[514.723,594.12,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[915.447,500],[114,500],[114,688.24],[915.447,688.24]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"tm":{"a":0,"k":0.14,"ix":2},"w":3581,"h":2313,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 92","refId":"image_62","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.531,826.316,0],"ix":2},"a":{"a":0,"k":[310,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 91","refId":"image_63","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.531,636.729,0],"ix":2},"a":{"a":0,"k":[310,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 90","refId":"image_64","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.531,628.328,0],"ix":2},"a":{"a":0,"k":[310,187.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 89","refId":"image_65","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[689.006,1309.962,0],"ix":2},"a":{"a":0,"k":[166.5,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"Layer 88","refId":"image_66","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[318.359,1309.962,0],"ix":2},"a":{"a":0,"k":[166.5,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Pre-comp 2","refId":"comp_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[515.758,1569.532,0],"ix":2},"a":{"a":0,"k":[514.258,1880.032,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[924.517,1744],[104,1744],[104,2016.064],[924.517,2016.064]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"tm":{"a":0,"k":0.14,"ix":2},"w":3581,"h":2313,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Pre-comp 3","refId":"comp_26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[506.786,1760.89,0],"ix":2},"a":{"a":0,"k":[511.286,2075.884,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[928.572,1930],[94,1930],[94,2221.769],[928.572,2221.769]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"tm":{"a":0,"k":0.14,"ix":2},"w":3581,"h":2313,"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Phone 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[507.325,1906.236,0],"ix":2},"a":{"a":0,"k":[418.494,1811.524,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[67.757,0],[0,0],[0,67.757],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[0,67.757]],"v":[[295.559,905.637],[-295.559,905.637],[-418.244,782.952],[-418.244,-782.952],[-295.559,-905.637],[295.559,-905.637],[418.244,-782.952],[418.244,782.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.149019607843,0.149019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.494,905.887],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":101,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":0,"nm":"Pre-comp 4","refId":"comp_27","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[508.431,354.277,0],"ix":2},"a":{"a":0,"k":[1495.459,667.261,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":186,"s":[0,0,100]},{"t":201,"s":[87.376,87.376,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1972.372,385.401],[1018.546,385.401],[1018.546,936.187],[1972.372,936.187]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3581,"h":2313,"ip":180,"op":680,"st":180,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"Pre-comp 5","refId":"comp_28","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[505.369,651.04,0],"ix":2},"a":{"a":0,"k":[1489.644,965.54,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":180,"s":[0,0,100]},{"t":195,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[1907.288,853.08],[1072,853.08],[1072,1078],[1907.288,1078]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3581,"h":2313,"ip":180,"op":680,"st":180,"bm":0},{"ddd":0,"ind":12,"ty":0,"nm":"Pre-comp 6","refId":"comp_29","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":162,"s":[0]},{"t":167,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":162,"s":[502.094,1572.065,0],"to":[1,-5,0],"ti":[-1,5,0]},{"t":184,"s":[508.094,1542.065,0]}],"ix":2},"a":{"a":0,"k":[1490.279,2067.174,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":162,"s":[64.654,47.654,100]},{"t":184,"s":[76.654,76.654,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[2042.282,999.424],[957.533,999.424],[957.533,2284.469],[2042.282,2284.469]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3581,"h":2313,"ip":162,"op":662,"st":162,"bm":0},{"ddd":0,"ind":13,"ty":0,"nm":"Pre-comp 1","refId":"comp_24","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.223,283.62,0],"ix":2},"a":{"a":0,"k":[514.723,594.12,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":180,"s":[100,100,100]},{"t":194,"s":[0,0,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[915.447,500],[114,500],[114,688.24],[915.447,688.24]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3581,"h":2313,"ip":100,"op":195,"st":100,"bm":0},{"ddd":0,"ind":14,"ty":2,"nm":"Layer 87","refId":"image_62","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.531,826.316,0],"ix":2},"a":{"a":0,"k":[310,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":172,"s":[100,100,100]},{"t":182,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":100,"op":201,"st":100,"bm":0},{"ddd":0,"ind":15,"ty":2,"nm":"Layer 85","refId":"image_63","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.531,636.729,0],"ix":2},"a":{"a":0,"k":[310,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":176,"s":[100,100,100]},{"t":186,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":100,"op":201,"st":100,"bm":0},{"ddd":0,"ind":16,"ty":2,"nm":"Layer 86","refId":"image_64","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.531,628.328,0],"ix":2},"a":{"a":0,"k":[310,187.5,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[0.455,0.73,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":178,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0.444,0.997,0]},"t":182,"s":[64.8,28.885,100]},{"t":188,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":100,"op":201,"st":100,"bm":0},{"ddd":0,"ind":17,"ty":2,"nm":"Layer 8","refId":"image_65","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[689.006,1309.962,0],"ix":2},"a":{"a":0,"k":[166.5,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":163,"s":[100,100,100]},{"t":172,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":100,"op":183,"st":100,"bm":0},{"ddd":0,"ind":18,"ty":2,"nm":"Layer 11","refId":"image_66","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[318.359,1309.962,0],"ix":2},"a":{"a":0,"k":[166.5,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":163,"s":[100,100,100]},{"t":172,"s":[0,0,100]}],"ix":6}},"ao":0,"ip":100,"op":183,"st":100,"bm":0},{"ddd":0,"ind":19,"ty":0,"nm":"Pre-comp 2","refId":"comp_25","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[515.758,1569.532,0],"ix":2},"a":{"a":0,"k":[514.258,1880.032,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[924.517,1744],[104,1744],[104,2016.064],[924.517,2016.064]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3581,"h":2313,"ip":100,"op":167,"st":100,"bm":0},{"ddd":0,"ind":20,"ty":0,"nm":"Pre-comp 3","refId":"comp_26","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[506.786,1760.89,0],"ix":2},"a":{"a":0,"k":[511.286,2075.884,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[928.572,1930],[94,1930],[94,2221.769],[928.572,2221.769]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":3581,"h":2313,"ip":100,"op":600,"st":100,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Phone","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[507.325,1906.236,0],"ix":2},"a":{"a":0,"k":[418.494,1811.524,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[67.757,0],[0,0],[0,67.757],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[0,67.757]],"v":[[295.559,905.637],[-295.559,905.637],[-418.244,782.952],[-418.244,-782.952],[-295.559,-905.637],[295.559,-905.637],[418.244,-782.952],[418.244,782.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149019607843,0.149019607843,0.149019607843,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.494,905.887],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":100,"op":600,"st":100,"bm":0}]},{"id":"comp_24","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 6","refId":"image_58","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[234.293,593.536,0],"ix":2},"a":{"a":0,"k":[48,48,0],"ix":1},"s":{"a":0,"k":[62.619,62.619,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 12","refId":"image_59","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[797.293,593.536,0],"ix":2},"a":{"a":0,"k":[16,21.5,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 13","refId":"image_60","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[392.396,593.536,0],"ix":2},"a":{"a":0,"k":[103,40.5,0],"ix":1},"s":{"a":0,"k":[86.415,86.415,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 88","refId":"image_61","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[514.854,593.649,0],"ix":2},"a":{"a":0,"k":[327.33,39.965,0],"ix":1},"s":{"a":0,"k":[103.904,122.825,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_25","layers":[{"ddd":0,"ind":1,"ty":5,"nm":"Add Money","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[382,1895,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[32.748,32.748,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":134,"f":"Helvetica-Light","t":"Add Money","j":0,"tr":0,"lh":160.8,"ls":0,"fc":[1,1,1]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[501.053,1880.04,0],"ix":2},"a":{"a":0,"k":[-1292.447,723.54,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[524.106,118.079],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":61,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,0.476084211761,0.361413364784,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.133331298828,0.133331298828,0.133331298828,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1292.447,723.54],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_26","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 63 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[510.022,2085.269,0],"ix":2},"a":{"a":0,"k":[234.212,23.933,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[3.062,0],[0,0]],"o":[[0,0],[0,0],[0,3.062],[0,0],[0,0]],"v":[[-8.949,-8.95],[8.949,-8.95],[8.949,3.407],[3.406,8.95],[-8.949,8.95]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[459.224,35.444],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,3.062]],"o":[[0,0],[0,0],[0,0],[-3.061,0],[0,0]],"v":[[-8.949,-8.95],[8.949,-8.95],[8.949,8.95],[-3.406,8.95],[-8.949,3.407]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[436.961,35.444],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,-3.061],[0,0],[0,0]],"o":[[0,0],[3.062,0],[0,0],[0,0],[0,0]],"v":[[-8.949,-8.95],[3.406,-8.95],[8.949,-3.406],[8.949,8.95],[-8.949,8.95]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[459.224,13.182],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.061,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,-3.061]],"v":[[-3.406,-8.95],[8.95,-8.95],[8.95,8.95],[-8.95,8.95],[-8.95,-3.406]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[436.961,13.182],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.479,0.437],[0.317,0.111],[0.273,0],[0,0],[0,-1.324],[0,0],[-1.324,0],[0,0],[-0.245,0.082],[-0.24,0.221],[0,0.701],[0,0]],"o":[[-0.24,-0.22],[-0.245,-0.081],[0,0],[-1.324,0],[0,0],[0,1.324],[0,0],[0.273,0],[0.317,-0.106],[0.479,-0.436],[0,0],[0,-0.7]],"v":[[20.576,0.391],[19.735,-0.108],[18.958,-0.238],[4.66,-0.238],[2.262,2.161],[2.262,7.499],[4.66,9.898],[18.958,9.898],[19.735,9.768],[20.576,9.27],[21.358,7.499],[21.358,2.161]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,2.25],[0,0],[-0.715,0.734],[-0.95,0.111],[-0.164,0],[0,0],[0,0],[1.325,0],[0,0],[0.441,-0.551],[0.086,-0.321],[0,-0.216],[0,0],[-1.324,0],[0,0],[0,1.324],[0,0],[0,0]],"o":[[0,0],[0,-1.103],[0.633,-0.652],[0.158,-0.019],[0,0],[0,0],[0.005,-1.324],[0,0],[-0.758,0],[-0.201,0.255],[-0.053,0.202],[0,0],[0,1.324],[0,0],[1.324,0],[0,0],[0,0],[-2.25,0]],"v":[[0.582,7.505],[0.582,2.171],[1.738,-0.669],[4.171,-1.874],[4.655,-1.902],[18.891,-1.902],[18.891,-8.449],[16.497,-10.848],[-18.954,-10.848],[-20.83,-9.947],[-21.272,-9.078],[-21.358,-8.449],[-21.358,18.273],[-18.96,20.671],[16.494,20.671],[18.891,18.273],[18.891,11.581],[4.66,11.581]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.055,0],[0.211,-0.057],[0,0],[0,0]],"o":[[0,0],[-0.288,-1.07],[-0.211,0],[0,0],[0,0],[0,0]],"v":[[13.998,-12.527],[13.25,-15.27],[10.939,-17.04],[10.306,-16.954],[6.305,-15.861],[-5.912,-12.527]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.184,-0.59],[0,0],[0,0]],"o":[[0,0],[-0.59,-1.185],[0,0],[0,0],[0,0]],"v":[[5.652,-17.174],[4.75,-18.997],[1.537,-20.081],[-13.707,-12.527],[-11.376,-12.527]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.611999990426,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[21.607,24.143],"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":"Group 5","np":5,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.286,0],[0,4.287],[-4.286,0],[0,-4.286]],"o":[[-4.286,0],[0,-4.286],[4.286,0],[0,4.287]],"v":[[0.037,7.848],[-7.737,0.075],[0.037,-7.697],[7.809,0.075]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.197,1.765],[0.66,0],[0.795,1.939],[-1.591,1.46],[0.42,0.532],[1.356,1.086],[0.46,-0.51],[1.927,0.804],[-0.124,2.182],[0.684,0.079],[1.746,-0.193],[-0.023,-0.677],[1.986,-0.813],[1.386,1.525],[0.534,-0.416],[1.103,-1.376],[-0.506,-0.46],[0.841,-2.009],[2.277,0],[0.081,-0.673],[-0.197,-1.764],[-0.668,0],[-0.817,-1.989],[1.594,-1.461],[-0.42,-0.533],[-1.362,-1.096],[-0.464,0.51],[-1.921,-0.805],[0.124,-2.183],[-0.681,-0.078],[-0.898,0],[-0.852,0.095],[0.022,0.678],[-1.983,0.813],[-1.386,-1.522],[-0.537,0.414],[-1.109,1.38],[0.509,0.461],[-0.842,2.007],[-2.06,0],[0,0],[-0.081,0.682]],"o":[[-0.074,-0.655],[-2.136,0],[-0.812,-1.987],[0.502,-0.458],[-1.093,-1.388],[-0.531,-0.427],[-1.389,1.539],[-2.007,-0.844],[0.041,-0.686],[-1.74,-0.202],[-0.675,0.075],[0.076,2.161],[-1.905,0.778],[-0.458,-0.502],[-1.396,1.095],[-0.429,0.536],[1.622,1.469],[-0.805,1.916],[-0.739,-0.023],[-0.205,1.75],[0.073,0.659],[2.03,-0.051],[0.815,1.986],[-0.499,0.458],[1.083,1.379],[0.533,0.43],[1.393,-1.542],[2.011,0.842],[-0.04,0.686],[0.89,0.104],[0.853,0],[0.676,-0.075],[-0.079,-2.16],[1.917,-0.783],[0.461,0.502],[1.394,-1.093],[0.43,-0.533],[-1.622,-1.468],[0.792,-1.891],[0,0],[0.669,0.055],[0.205,-1.752]],"v":[[23.156,-2.561],[21.658,-3.709],[16.833,-6.901],[18.135,-12.664],[18.278,-14.421],[14.586,-18.149],[12.815,-18.007],[7.003,-16.701],[3.855,-21.76],[2.711,-23.121],[-2.531,-23.136],[-3.685,-21.802],[-6.875,-16.83],[-12.644,-18.143],[-14.403,-18.291],[-18.173,-14.565],[-18.032,-12.793],[-16.729,-6.979],[-21.801,-3.829],[-23.146,-2.684],[-23.156,2.614],[-21.628,3.76],[-16.833,6.954],[-18.136,12.716],[-18.279,14.472],[-14.592,18.202],[-12.817,18.061],[-7.009,16.754],[-3.856,21.812],[-2.712,23.173],[-0.029,23.329],[2.53,23.187],[3.684,21.853],[6.872,16.883],[12.643,18.196],[14.402,18.344],[18.171,14.616],[18.031,12.845],[16.727,7.033],[21.493,3.873],[21.781,3.88],[23.146,2.738]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[305.074,24.286],"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":"Group 6","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.014,0],[0,0],[0,-1.753],[0,0],[0,0],[0,0],[0,0],[0,-1.631],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.268,1.669],[9.023,4.253],[-3.896,-2.032],[0,0],[-0.142,-1.288],[0,0],[-2.706,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,1.758],[0,0],[0,0],[0,0],[0,0],[0,1.638],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.267,-1.682],[-2.122,-0.89],[0,0],[0,0],[0.142,1.296],[0,0],[0,0],[2.273,0],[0,0],[0,0]],"v":[[23.735,-3.941],[-3.263,-3.941],[-4.86,-1.826],[-3.263,0.441],[20.942,0.441],[19.582,5.043],[-4.209,5.043],[-5.696,7.011],[-4.209,9.126],[18.326,9.126],[18.377,9.126],[17.101,13.43],[-7.462,13.43],[-9.094,0.439],[-9.623,-3.941],[-10.365,-9.657],[-23.853,-17.691],[-23.853,-12.668],[-16.738,-9.345],[-14.94,-7.095],[-11.912,15.602],[-9.09,18.581],[18.059,18.581],[20.773,16.206],[26.154,0.229]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[161.944,18.832],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.416,0],[0,-2.416],[2.415,0],[0,2.415]],"o":[[2.415,0],[0,2.415],[-2.416,0],[0,-2.416]],"v":[[-0.001,-4.374],[4.374,-0.001],[-0.001,4.374],[-4.374,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[174.539,43.241],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.415,0],[0,-2.416],[2.415,0],[0,2.415]],"o":[[2.415,0],[0,2.415],[-2.415,0],[0,-2.416]],"v":[[0.002,-4.374],[4.373,-0.001],[0.002,4.374],[-4.373,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[155.448,43.241],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 64 Outlines","sr":1,"ks":{"o":{"a":0,"k":2,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[509.521,2085.899,0],"ix":2},"a":{"a":0,"k":[327.33,39.965,0],"ix":1},"s":{"a":0,"k":[106.345,111.349,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[22.072,0],[0,0],[0,-22.072],[-22.072,0],[0,0],[0,22.072]],"o":[[0,0],[-22.072,0],[0,22.072],[0,0],[22.072,0],[0,-22.072]],"v":[[287.366,-39.965],[-287.365,-39.965],[-327.33,0],[-287.365,39.965],[287.366,39.965],[327.331,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[327.33,39.965],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_27","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 69","refId":"image_67","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1564.689,669.757,0],"ix":2},"a":{"a":0,"k":[205.848,104.236,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 70","refId":"image_68","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1211.914,672.882,0],"ix":2},"a":{"a":0,"k":[26.812,71.202,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 71","refId":"image_69","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1603.879,672.882,0],"ix":2},"a":{"a":0,"k":[245.807,0.767,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 81","refId":"image_70","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.189,672.881,0],"ix":2},"a":{"a":0,"k":[67.169,145.364,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 82","refId":"image_71","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1497.596,672.881,0],"ix":2},"a":{"a":0,"k":[351.576,145.364,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_28","layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 26","refId":"image_72","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1391.373,965.051,0],"ix":2},"a":{"a":0,"k":[124.164,18.769,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 51","refId":"image_73","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1181.811,962.124,0],"ix":2},"a":{"a":0,"k":[23.141,23.14,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 52","refId":"image_74","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1184.489,964.802,0],"ix":2},"a":{"a":0,"k":[34.882,34.882,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 57","refId":"image_75","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1493.551,964.802,0],"ix":2},"a":{"a":0,"k":[351.574,42.81,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0}]},{"id":"comp_29","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 47 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[0]},{"t":23,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1783.372,1245.287,0],"ix":2},"a":{"a":0,"k":[27.754,27.753,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.857,9.546],[-12.873,0.53],[-10.508,-1.835],[-3.857,4.816],[10.507,-9.546],[12.873,-7.181]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.97,27.129],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-15.19],[15.189,0],[0,15.19],[-15.19,0]],"o":[[0,15.19],[-15.19,0],[0,-15.19],[15.189,0]],"v":[[27.504,0],[0,27.503],[-27.504,0],[0,-27.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.611999990426,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.753,27.753],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":19,"op":519,"st":19,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 48","refId":"image_76","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[0]},{"t":23,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1606.168,1245.666,0],"ix":2},"a":{"a":0,"k":[39.176,18.769,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":19,"op":519,"st":19,"bm":0},{"ddd":0,"ind":3,"ty":2,"nm":"Layer 49","refId":"image_77","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[0]},{"t":23,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365.121,1244.692,0],"ix":2},"a":{"a":0,"k":[76.946,35.519,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":19,"op":519,"st":19,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 19 Outlines 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[0]},{"t":23,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1244.641,0],"ix":2},"a":{"a":0,"k":[27.493,42.126,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.287,-0.118],[0.72,0.111],[3.461,-11.285],[0,0],[0,-2.126],[0,0],[0,3.115],[0,0],[-6.522,6.285],[-8.704,-3.909]],"o":[[-2.079,0.856],[-11.619,-1.802],[0,0],[-1.295,1.49],[0,0],[0,2.863],[0,0],[-0.057,-2.559],[7.581,-7.308],[0.283,0.127]],"v":[[17.315,-12.666],[14.219,-11.731],[-11.054,2.559],[-11.054,2.561],[-13.131,8.123],[-13.131,14.761],[-17.554,14.709],[-17.554,7.356],[-10.972,-10.515],[17.328,-13.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.301999978458,0.305999995213,0.349000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.111,18.074],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.899,-0.911],[-0.753,-0.007],[0,-7.306],[0,0],[-1.368,0],[0,0],[0,0.782],[0,0],[7.287,0.002],[1.305,2.008],[0.593,-0.354]],"o":[[0.654,0.206],[7.305,0.064],[0,0],[0,1.368],[0,0],[0.782,0],[0,0],[0,-7.287],[-2.576,-0.001],[-0.526,0.449],[-2.61,1.555]],"v":[[-8.504,-4.835],[-6.397,-4.509],[6.864,8.637],[6.864,9.967],[9.341,12.444],[10.403,12.444],[11.819,11.028],[11.819,4.084],[-1.377,-9.108],[-7.527,-12.444],[-9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.910000011968,0.282000014361,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.918,71.559],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.899,-0.911],[0.753,-0.007],[0,-7.306],[0,0],[1.368,0],[0,0],[0,0.782],[0,0],[-7.287,0.002],[-1.305,2.008],[-0.593,-0.354]],"o":[[-0.654,0.206],[-7.305,0.064],[0,0],[0,1.368],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.001],[0.526,0.449],[2.61,1.555]],"v":[[8.505,-4.835],[6.397,-4.509],[-6.864,8.637],[-6.864,9.967],[-9.341,12.444],[-10.403,12.444],[-11.819,11.028],[-11.819,4.084],[1.377,-9.108],[7.527,-12.444],[9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.426999978458,0.477999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.068,71.559],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.24,-0.995],[4.697,1.966],[0,1.264],[0,0],[-4.269,1.772],[0,0]],"o":[[-4.358,1.825],[0.24,-0.995],[0,0],[4.26,1.768],[0,0],[0,1.265]],"v":[[6.922,0.502],[-6.922,0.502],[-6.722,-2.402],[-6.696,-2.468],[6.696,-2.468],[6.722,-2.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.838999968884,0.651000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,56.332],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.845,-3.032],[3.153,1.265],[0,7.347],[0,0],[-0.939,1.367],[0,-2.203],[0,0]],"o":[[2.88,1.801],[-6.48,-2.602],[0,0],[0,-1.784],[1.153,-1.676],[0,0],[0,6.459]],"v":[[5.334,11.526],[2.791,16.48],[-8.214,0.217],[-8.214,-11.264],[-6.724,-16.07],[-2.907,-14.801],[-2.907,-3.321]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.952999997606,0.894000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.194,37.46],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.782,0],[0,0],[0,0.782],[-0.782,0],[0,0],[0,-0.781]],"o":[[0,0],[-0.782,0],[0,-0.781],[0,0],[0.782,0],[0,0.782]],"v":[[2.123,1.415],[-2.122,1.415],[-3.538,0],[-2.122,-1.415],[2.123,-1.415],[3.538,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.699,79.58],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.668,0],[0,10.986],[0,0],[-4.689,0],[0,0],[0,-4.69]],"o":[[0,9.676],[-9.109,0],[0,0],[0,-4.69],[0,0],[4.689,0],[0,0]],"v":[[17.514,1.229],[0,18.742],[-17.514,0.676],[-17.514,-10.251],[-9.022,-18.742],[9.022,-18.742],[17.514,-10.251]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.922000002394,0.823999980852,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,36.448],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.039,-4.771],[0.105,-0.111],[0,-2.737],[0,0],[2.948,0],[0,0],[4.689,0],[0,0],[0,-4.69],[0,0],[0,2.348],[0,0],[-6.521,6.286],[-8.702,-3.91],[0.286,-0.118],[0,0],[-0.365,-0.039],[0,0]],"o":[[0.083,0.129],[-1.874,1.985],[0,0],[0,2.191],[0,0],[0,-4.69],[0,0],[-4.689,0],[0,0],[-2.522,0],[0,0],[-0.057,-2.56],[7.581,-7.308],[0.283,0.128],[0,0],[-0.34,0.14],[0,0],[5.278,0.563]],"v":[[23.495,-3.346],[23.449,-2.91],[20.528,4.443],[20.528,14.096],[15.928,18.436],[15.928,7.509],[7.437,-0.982],[-10.607,-0.982],[-19.098,7.509],[-19.098,18.436],[-23.521,14.096],[-23.521,6.745],[-16.94,-11.129],[11.36,-13.928],[11.349,-13.277],[9.079,-12.344],[9.176,-11.665],[10.278,-11.546]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.263000009574,0.301999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.078,18.687],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.782],[0,0],[-7.286,0.003],[-1.305,2.008],[-4.558,3.894],[-2.577,-0.001]],"o":[[0,0],[0,0.782],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.577,-0.001],[4.555,3.892],[1.306,2.008],[7.287,0.003]],"v":[[27.243,4.084],[27.243,11.028],[25.827,12.444],[-25.827,12.444],[-27.243,11.028],[-27.243,4.084],[-14.049,-9.108],[-7.898,-12.444],[7.898,-12.444],[14.049,-9.108]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.310000011968,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,71.559],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.783],[0,0],[-7.288,0.002],[-1.306,2.009],[0,1.416],[0,0],[0,7.301],[0,0],[0,2.348],[0,0],[-6.521,6.285],[-8.704,-3.909],[0.287,-0.118],[0,0],[-0.364,-0.038],[0,0],[-3.039,-4.769],[0.104,-0.111],[0,-2.737],[0,0],[2.397,0],[0,0],[0,0],[6.35,-2.628],[0,0],[-1.322,-2.033],[-2.576,-0.002]],"o":[[0,0],[0,0.783],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.002],[1.311,-2.016],[0,0],[-6.35,-2.628],[0,0],[-2.522,0],[0,0],[-0.057,-2.559],[7.582,-7.308],[0.283,0.127],[0,0],[-0.34,0.14],[0,0],[5.277,0.564],[0.082,0.128],[-1.875,1.984],[0,0],[0,2.397],[0,0],[0,0],[0,7.301],[0,0],[0,1.375],[1.306,2.009],[7.289,0.002]],"v":[[27.243,33.516],[27.243,40.46],[25.827,41.876],[-25.827,41.876],[-27.243,40.46],[-27.243,33.516],[-14.048,20.324],[-7.898,16.988],[-6.722,11.803],[-6.696,11.737],[-17.513,-4.449],[-17.513,-5.003],[-21.936,-9.344],[-21.936,-16.696],[-15.355,-34.568],[12.946,-37.369],[12.933,-36.718],[10.664,-35.784],[10.761,-35.105],[11.863,-34.986],[25.081,-26.786],[25.035,-26.35],[22.113,-18.997],[22.113,-9.344],[17.771,-5.003],[17.513,-5.003],[17.513,-4.449],[6.696,11.737],[6.722,11.803],[7.898,16.988],[14.048,20.324]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.728999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,42.127],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":19,"op":519,"st":19,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 30 Outlines 6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19,"s":[0]},{"t":23,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1245.294,0],"ix":2},"a":{"a":0,"k":[41.475,41.474,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.47,0],[0,0],[0,8.47],[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0]],"o":[[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0],[8.47,0],[0,0],[0,8.47]],"v":[[25.889,41.224],[-25.889,41.224],[-41.224,25.888],[-41.224,-25.889],[-25.889,-41.224],[25.889,-41.224],[41.224,-25.889],[41.224,25.888]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.474,41.474],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":19,"op":519,"st":19,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 43 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0]},{"t":19,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1783.372,1376.388,0],"ix":2},"a":{"a":0,"k":[27.754,27.753,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.857,9.546],[-12.873,0.53],[-10.508,-1.835],[-3.857,4.816],[10.507,-9.546],[12.873,-7.181]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.97,27.129],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-15.19],[15.189,0],[0,15.19],[-15.19,0]],"o":[[0,15.19],[-15.19,0],[0,-15.19],[15.189,0]],"v":[[27.504,0],[0,27.503],[-27.504,0],[0,-27.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.13300000359,0.13300000359,0.13300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.753,27.753],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":515,"st":15,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"Layer 44","refId":"image_78","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0]},{"t":19,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1606.167,1378.563,0],"ix":2},"a":{"a":0,"k":[39.18,16.973,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":15,"op":515,"st":15,"bm":0},{"ddd":0,"ind":8,"ty":2,"nm":"Layer 45","refId":"image_79","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0]},{"t":19,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365.121,1375.795,0],"ix":2},"a":{"a":0,"k":[76.946,35.518,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":15,"op":515,"st":15,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 19 Outlines 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0]},{"t":19,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1376.141,0],"ix":2},"a":{"a":0,"k":[27.493,42.126,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.287,-0.118],[0.72,0.111],[3.461,-11.285],[0,0],[0,-2.126],[0,0],[0,3.115],[0,0],[-6.522,6.285],[-8.704,-3.909]],"o":[[-2.079,0.856],[-11.619,-1.802],[0,0],[-1.295,1.49],[0,0],[0,2.863],[0,0],[-0.057,-2.559],[7.581,-7.308],[0.283,0.127]],"v":[[17.315,-12.666],[14.219,-11.731],[-11.054,2.559],[-11.054,2.561],[-13.131,8.123],[-13.131,14.761],[-17.554,14.709],[-17.554,7.356],[-10.972,-10.515],[17.328,-13.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.301999978458,0.305999995213,0.349000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.111,18.074],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.899,-0.911],[-0.753,-0.007],[0,-7.306],[0,0],[-1.368,0],[0,0],[0,0.782],[0,0],[7.287,0.002],[1.305,2.008],[0.593,-0.354]],"o":[[0.654,0.206],[7.305,0.064],[0,0],[0,1.368],[0,0],[0.782,0],[0,0],[0,-7.287],[-2.576,-0.001],[-0.526,0.449],[-2.61,1.555]],"v":[[-8.504,-4.835],[-6.397,-4.509],[6.864,8.637],[6.864,9.967],[9.341,12.444],[10.403,12.444],[11.819,11.028],[11.819,4.084],[-1.377,-9.108],[-7.527,-12.444],[-9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.910000011968,0.282000014361,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.918,71.559],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.899,-0.911],[0.753,-0.007],[0,-7.306],[0,0],[1.368,0],[0,0],[0,0.782],[0,0],[-7.287,0.002],[-1.305,2.008],[-0.593,-0.354]],"o":[[-0.654,0.206],[-7.305,0.064],[0,0],[0,1.368],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.001],[0.526,0.449],[2.61,1.555]],"v":[[8.505,-4.835],[6.397,-4.509],[-6.864,8.637],[-6.864,9.967],[-9.341,12.444],[-10.403,12.444],[-11.819,11.028],[-11.819,4.084],[1.377,-9.108],[7.527,-12.444],[9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.426999978458,0.477999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.068,71.559],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.24,-0.995],[4.697,1.966],[0,1.264],[0,0],[-4.269,1.772],[0,0]],"o":[[-4.358,1.825],[0.24,-0.995],[0,0],[4.26,1.768],[0,0],[0,1.265]],"v":[[6.922,0.502],[-6.922,0.502],[-6.722,-2.402],[-6.696,-2.468],[6.696,-2.468],[6.722,-2.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.838999968884,0.651000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,56.332],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.845,-3.032],[3.153,1.265],[0,7.347],[0,0],[-0.939,1.367],[0,-2.203],[0,0]],"o":[[2.88,1.801],[-6.48,-2.602],[0,0],[0,-1.784],[1.153,-1.676],[0,0],[0,6.459]],"v":[[5.334,11.526],[2.791,16.48],[-8.214,0.217],[-8.214,-11.264],[-6.724,-16.07],[-2.907,-14.801],[-2.907,-3.321]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.952999997606,0.894000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.194,37.46],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.782,0],[0,0],[0,0.782],[-0.782,0],[0,0],[0,-0.781]],"o":[[0,0],[-0.782,0],[0,-0.781],[0,0],[0.782,0],[0,0.782]],"v":[[2.123,1.415],[-2.122,1.415],[-3.538,0],[-2.122,-1.415],[2.123,-1.415],[3.538,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.699,79.58],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.668,0],[0,10.986],[0,0],[-4.689,0],[0,0],[0,-4.69]],"o":[[0,9.676],[-9.109,0],[0,0],[0,-4.69],[0,0],[4.689,0],[0,0]],"v":[[17.514,1.229],[0,18.742],[-17.514,0.676],[-17.514,-10.251],[-9.022,-18.742],[9.022,-18.742],[17.514,-10.251]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.922000002394,0.823999980852,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,36.448],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.039,-4.771],[0.105,-0.111],[0,-2.737],[0,0],[2.948,0],[0,0],[4.689,0],[0,0],[0,-4.69],[0,0],[0,2.348],[0,0],[-6.521,6.286],[-8.702,-3.91],[0.286,-0.118],[0,0],[-0.365,-0.039],[0,0]],"o":[[0.083,0.129],[-1.874,1.985],[0,0],[0,2.191],[0,0],[0,-4.69],[0,0],[-4.689,0],[0,0],[-2.522,0],[0,0],[-0.057,-2.56],[7.581,-7.308],[0.283,0.128],[0,0],[-0.34,0.14],[0,0],[5.278,0.563]],"v":[[23.495,-3.346],[23.449,-2.91],[20.528,4.443],[20.528,14.096],[15.928,18.436],[15.928,7.509],[7.437,-0.982],[-10.607,-0.982],[-19.098,7.509],[-19.098,18.436],[-23.521,14.096],[-23.521,6.745],[-16.94,-11.129],[11.36,-13.928],[11.349,-13.277],[9.079,-12.344],[9.176,-11.665],[10.278,-11.546]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.263000009574,0.301999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.078,18.687],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.782],[0,0],[-7.286,0.003],[-1.305,2.008],[-4.558,3.894],[-2.577,-0.001]],"o":[[0,0],[0,0.782],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.577,-0.001],[4.555,3.892],[1.306,2.008],[7.287,0.003]],"v":[[27.243,4.084],[27.243,11.028],[25.827,12.444],[-25.827,12.444],[-27.243,11.028],[-27.243,4.084],[-14.049,-9.108],[-7.898,-12.444],[7.898,-12.444],[14.049,-9.108]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.310000011968,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,71.559],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.783],[0,0],[-7.288,0.002],[-1.306,2.009],[0,1.416],[0,0],[0,7.301],[0,0],[0,2.348],[0,0],[-6.521,6.285],[-8.704,-3.909],[0.287,-0.118],[0,0],[-0.364,-0.038],[0,0],[-3.039,-4.769],[0.104,-0.111],[0,-2.737],[0,0],[2.397,0],[0,0],[0,0],[6.35,-2.628],[0,0],[-1.322,-2.033],[-2.576,-0.002]],"o":[[0,0],[0,0.783],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.002],[1.311,-2.016],[0,0],[-6.35,-2.628],[0,0],[-2.522,0],[0,0],[-0.057,-2.559],[7.582,-7.308],[0.283,0.127],[0,0],[-0.34,0.14],[0,0],[5.277,0.564],[0.082,0.128],[-1.875,1.984],[0,0],[0,2.397],[0,0],[0,0],[0,7.301],[0,0],[0,1.375],[1.306,2.009],[7.289,0.002]],"v":[[27.243,33.516],[27.243,40.46],[25.827,41.876],[-25.827,41.876],[-27.243,40.46],[-27.243,33.516],[-14.048,20.324],[-7.898,16.988],[-6.722,11.803],[-6.696,11.737],[-17.513,-4.449],[-17.513,-5.003],[-21.936,-9.344],[-21.936,-16.696],[-15.355,-34.568],[12.946,-37.369],[12.933,-36.718],[10.664,-35.784],[10.761,-35.105],[11.863,-34.986],[25.081,-26.786],[25.035,-26.35],[22.113,-18.997],[22.113,-9.344],[17.771,-5.003],[17.513,-5.003],[17.513,-4.449],[6.696,11.737],[6.722,11.803],[7.898,16.988],[14.048,20.324]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.728999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,42.127],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":515,"st":15,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 30 Outlines 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0]},{"t":19,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1376.794,0],"ix":2},"a":{"a":0,"k":[41.475,41.474,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.47,0],[0,0],[0,8.47],[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0]],"o":[[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0],[8.47,0],[0,0],[0,8.47]],"v":[[25.889,41.224],[-25.889,41.224],[-41.224,25.888],[-41.224,-25.889],[-25.889,-41.224],[25.889,-41.224],[41.224,-25.889],[41.224,25.888]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.474,41.474],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":15,"op":515,"st":15,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 39 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[0]},{"t":16,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1783.372,1507.49,0],"ix":2},"a":{"a":0,"k":[27.754,27.753,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.857,9.546],[-12.873,0.53],[-10.508,-1.835],[-3.857,4.816],[10.507,-9.546],[12.873,-7.181]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.97,27.129],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-15.19],[15.189,0],[0,15.19],[-15.19,0]],"o":[[0,15.19],[-15.19,0],[0,-15.19],[15.189,0]],"v":[[27.504,0],[0,27.503],[-27.504,0],[0,-27.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.611999990426,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.753,27.753],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":512,"st":12,"bm":0},{"ddd":0,"ind":12,"ty":2,"nm":"Layer 40","refId":"image_80","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[0]},{"t":16,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1606.168,1507.869,0],"ix":2},"a":{"a":0,"k":[39.176,18.769,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":12,"op":512,"st":12,"bm":0},{"ddd":0,"ind":13,"ty":2,"nm":"Layer 41","refId":"image_81","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[0]},{"t":16,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365.121,1506.896,0],"ix":2},"a":{"a":0,"k":[76.946,35.518,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":12,"op":512,"st":12,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 19 Outlines 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[0]},{"t":16,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1507.141,0],"ix":2},"a":{"a":0,"k":[27.493,42.126,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.287,-0.118],[0.72,0.111],[3.461,-11.285],[0,0],[0,-2.126],[0,0],[0,3.115],[0,0],[-6.522,6.285],[-8.704,-3.909]],"o":[[-2.079,0.856],[-11.619,-1.802],[0,0],[-1.295,1.49],[0,0],[0,2.863],[0,0],[-0.057,-2.559],[7.581,-7.308],[0.283,0.127]],"v":[[17.315,-12.666],[14.219,-11.731],[-11.054,2.559],[-11.054,2.561],[-13.131,8.123],[-13.131,14.761],[-17.554,14.709],[-17.554,7.356],[-10.972,-10.515],[17.328,-13.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.301999978458,0.305999995213,0.349000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.111,18.074],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.899,-0.911],[-0.753,-0.007],[0,-7.306],[0,0],[-1.368,0],[0,0],[0,0.782],[0,0],[7.287,0.002],[1.305,2.008],[0.593,-0.354]],"o":[[0.654,0.206],[7.305,0.064],[0,0],[0,1.368],[0,0],[0.782,0],[0,0],[0,-7.287],[-2.576,-0.001],[-0.526,0.449],[-2.61,1.555]],"v":[[-8.504,-4.835],[-6.397,-4.509],[6.864,8.637],[6.864,9.967],[9.341,12.444],[10.403,12.444],[11.819,11.028],[11.819,4.084],[-1.377,-9.108],[-7.527,-12.444],[-9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.910000011968,0.282000014361,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.918,71.559],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.899,-0.911],[0.753,-0.007],[0,-7.306],[0,0],[1.368,0],[0,0],[0,0.782],[0,0],[-7.287,0.002],[-1.305,2.008],[-0.593,-0.354]],"o":[[-0.654,0.206],[-7.305,0.064],[0,0],[0,1.368],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.001],[0.526,0.449],[2.61,1.555]],"v":[[8.505,-4.835],[6.397,-4.509],[-6.864,8.637],[-6.864,9.967],[-9.341,12.444],[-10.403,12.444],[-11.819,11.028],[-11.819,4.084],[1.377,-9.108],[7.527,-12.444],[9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.426999978458,0.477999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.068,71.559],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.24,-0.995],[4.697,1.966],[0,1.264],[0,0],[-4.269,1.772],[0,0]],"o":[[-4.358,1.825],[0.24,-0.995],[0,0],[4.26,1.768],[0,0],[0,1.265]],"v":[[6.922,0.502],[-6.922,0.502],[-6.722,-2.402],[-6.696,-2.468],[6.696,-2.468],[6.722,-2.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.838999968884,0.651000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,56.332],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.845,-3.032],[3.153,1.265],[0,7.347],[0,0],[-0.939,1.367],[0,-2.203],[0,0]],"o":[[2.88,1.801],[-6.48,-2.602],[0,0],[0,-1.784],[1.153,-1.676],[0,0],[0,6.459]],"v":[[5.334,11.526],[2.791,16.48],[-8.214,0.217],[-8.214,-11.264],[-6.724,-16.07],[-2.907,-14.801],[-2.907,-3.321]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.952999997606,0.894000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.194,37.46],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.782,0],[0,0],[0,0.782],[-0.782,0],[0,0],[0,-0.781]],"o":[[0,0],[-0.782,0],[0,-0.781],[0,0],[0.782,0],[0,0.782]],"v":[[2.123,1.415],[-2.122,1.415],[-3.538,0],[-2.122,-1.415],[2.123,-1.415],[3.538,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.699,79.58],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.668,0],[0,10.986],[0,0],[-4.689,0],[0,0],[0,-4.69]],"o":[[0,9.676],[-9.109,0],[0,0],[0,-4.69],[0,0],[4.689,0],[0,0]],"v":[[17.514,1.229],[0,18.742],[-17.514,0.676],[-17.514,-10.251],[-9.022,-18.742],[9.022,-18.742],[17.514,-10.251]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.922000002394,0.823999980852,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,36.448],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.039,-4.771],[0.105,-0.111],[0,-2.737],[0,0],[2.948,0],[0,0],[4.689,0],[0,0],[0,-4.69],[0,0],[0,2.348],[0,0],[-6.521,6.286],[-8.702,-3.91],[0.286,-0.118],[0,0],[-0.365,-0.039],[0,0]],"o":[[0.083,0.129],[-1.874,1.985],[0,0],[0,2.191],[0,0],[0,-4.69],[0,0],[-4.689,0],[0,0],[-2.522,0],[0,0],[-0.057,-2.56],[7.581,-7.308],[0.283,0.128],[0,0],[-0.34,0.14],[0,0],[5.278,0.563]],"v":[[23.495,-3.346],[23.449,-2.91],[20.528,4.443],[20.528,14.096],[15.928,18.436],[15.928,7.509],[7.437,-0.982],[-10.607,-0.982],[-19.098,7.509],[-19.098,18.436],[-23.521,14.096],[-23.521,6.745],[-16.94,-11.129],[11.36,-13.928],[11.349,-13.277],[9.079,-12.344],[9.176,-11.665],[10.278,-11.546]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.263000009574,0.301999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.078,18.687],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.782],[0,0],[-7.286,0.003],[-1.305,2.008],[-4.558,3.894],[-2.577,-0.001]],"o":[[0,0],[0,0.782],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.577,-0.001],[4.555,3.892],[1.306,2.008],[7.287,0.003]],"v":[[27.243,4.084],[27.243,11.028],[25.827,12.444],[-25.827,12.444],[-27.243,11.028],[-27.243,4.084],[-14.049,-9.108],[-7.898,-12.444],[7.898,-12.444],[14.049,-9.108]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.310000011968,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,71.559],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.783],[0,0],[-7.288,0.002],[-1.306,2.009],[0,1.416],[0,0],[0,7.301],[0,0],[0,2.348],[0,0],[-6.521,6.285],[-8.704,-3.909],[0.287,-0.118],[0,0],[-0.364,-0.038],[0,0],[-3.039,-4.769],[0.104,-0.111],[0,-2.737],[0,0],[2.397,0],[0,0],[0,0],[6.35,-2.628],[0,0],[-1.322,-2.033],[-2.576,-0.002]],"o":[[0,0],[0,0.783],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.002],[1.311,-2.016],[0,0],[-6.35,-2.628],[0,0],[-2.522,0],[0,0],[-0.057,-2.559],[7.582,-7.308],[0.283,0.127],[0,0],[-0.34,0.14],[0,0],[5.277,0.564],[0.082,0.128],[-1.875,1.984],[0,0],[0,2.397],[0,0],[0,0],[0,7.301],[0,0],[0,1.375],[1.306,2.009],[7.289,0.002]],"v":[[27.243,33.516],[27.243,40.46],[25.827,41.876],[-25.827,41.876],[-27.243,40.46],[-27.243,33.516],[-14.048,20.324],[-7.898,16.988],[-6.722,11.803],[-6.696,11.737],[-17.513,-4.449],[-17.513,-5.003],[-21.936,-9.344],[-21.936,-16.696],[-15.355,-34.568],[12.946,-37.369],[12.933,-36.718],[10.664,-35.784],[10.761,-35.105],[11.863,-34.986],[25.081,-26.786],[25.035,-26.35],[22.113,-18.997],[22.113,-9.344],[17.771,-5.003],[17.513,-5.003],[17.513,-4.449],[6.696,11.737],[6.722,11.803],[7.898,16.988],[14.048,20.324]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.728999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,42.127],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":512,"st":12,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 30 Outlines 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":12,"s":[0]},{"t":16,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1507.794,0],"ix":2},"a":{"a":0,"k":[41.475,41.474,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.47,0],[0,0],[0,8.47],[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0]],"o":[[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0],[8.47,0],[0,0],[0,8.47]],"v":[[25.889,41.224],[-25.889,41.224],[-41.224,25.888],[-41.224,-25.889],[-25.889,-41.224],[25.889,-41.224],[41.224,-25.889],[41.224,25.888]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.474,41.474],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":12,"op":512,"st":12,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 35 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[0]},{"t":13,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1783.372,1638.591,0],"ix":2},"a":{"a":0,"k":[27.754,27.753,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.857,9.546],[-12.873,0.53],[-10.508,-1.835],[-3.857,4.816],[10.507,-9.546],[12.873,-7.181]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.97,27.129],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-15.19],[15.189,0],[0,15.19],[-15.19,0]],"o":[[0,15.19],[-15.19,0],[0,-15.19],[15.189,0]],"v":[[27.504,0],[0,27.503],[-27.504,0],[0,-27.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.13300000359,0.13300000359,0.13300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.753,27.753],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":509,"st":9,"bm":0},{"ddd":0,"ind":17,"ty":2,"nm":"Layer 36","refId":"image_82","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[0]},{"t":13,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1606.167,1640.766,0],"ix":2},"a":{"a":0,"k":[39.18,16.973,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":9,"op":509,"st":9,"bm":0},{"ddd":0,"ind":18,"ty":2,"nm":"Layer 37","refId":"image_83","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[0]},{"t":13,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365.121,1637.998,0],"ix":2},"a":{"a":0,"k":[76.946,35.518,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":9,"op":509,"st":9,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Layer 19 Outlines 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[0]},{"t":13,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1638.641,0],"ix":2},"a":{"a":0,"k":[27.493,42.126,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.287,-0.118],[0.72,0.111],[3.461,-11.285],[0,0],[0,-2.126],[0,0],[0,3.115],[0,0],[-6.522,6.285],[-8.704,-3.909]],"o":[[-2.079,0.856],[-11.619,-1.802],[0,0],[-1.295,1.49],[0,0],[0,2.863],[0,0],[-0.057,-2.559],[7.581,-7.308],[0.283,0.127]],"v":[[17.315,-12.666],[14.219,-11.731],[-11.054,2.559],[-11.054,2.561],[-13.131,8.123],[-13.131,14.761],[-17.554,14.709],[-17.554,7.356],[-10.972,-10.515],[17.328,-13.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.301999978458,0.305999995213,0.349000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.111,18.074],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.899,-0.911],[-0.753,-0.007],[0,-7.306],[0,0],[-1.368,0],[0,0],[0,0.782],[0,0],[7.287,0.002],[1.305,2.008],[0.593,-0.354]],"o":[[0.654,0.206],[7.305,0.064],[0,0],[0,1.368],[0,0],[0.782,0],[0,0],[0,-7.287],[-2.576,-0.001],[-0.526,0.449],[-2.61,1.555]],"v":[[-8.504,-4.835],[-6.397,-4.509],[6.864,8.637],[6.864,9.967],[9.341,12.444],[10.403,12.444],[11.819,11.028],[11.819,4.084],[-1.377,-9.108],[-7.527,-12.444],[-9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.910000011968,0.282000014361,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.918,71.559],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.899,-0.911],[0.753,-0.007],[0,-7.306],[0,0],[1.368,0],[0,0],[0,0.782],[0,0],[-7.287,0.002],[-1.305,2.008],[-0.593,-0.354]],"o":[[-0.654,0.206],[-7.305,0.064],[0,0],[0,1.368],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.001],[0.526,0.449],[2.61,1.555]],"v":[[8.505,-4.835],[6.397,-4.509],[-6.864,8.637],[-6.864,9.967],[-9.341,12.444],[-10.403,12.444],[-11.819,11.028],[-11.819,4.084],[1.377,-9.108],[7.527,-12.444],[9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.426999978458,0.477999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.068,71.559],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.24,-0.995],[4.697,1.966],[0,1.264],[0,0],[-4.269,1.772],[0,0]],"o":[[-4.358,1.825],[0.24,-0.995],[0,0],[4.26,1.768],[0,0],[0,1.265]],"v":[[6.922,0.502],[-6.922,0.502],[-6.722,-2.402],[-6.696,-2.468],[6.696,-2.468],[6.722,-2.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.838999968884,0.651000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,56.332],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.845,-3.032],[3.153,1.265],[0,7.347],[0,0],[-0.939,1.367],[0,-2.203],[0,0]],"o":[[2.88,1.801],[-6.48,-2.602],[0,0],[0,-1.784],[1.153,-1.676],[0,0],[0,6.459]],"v":[[5.334,11.526],[2.791,16.48],[-8.214,0.217],[-8.214,-11.264],[-6.724,-16.07],[-2.907,-14.801],[-2.907,-3.321]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.952999997606,0.894000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.194,37.46],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.782,0],[0,0],[0,0.782],[-0.782,0],[0,0],[0,-0.781]],"o":[[0,0],[-0.782,0],[0,-0.781],[0,0],[0.782,0],[0,0.782]],"v":[[2.123,1.415],[-2.122,1.415],[-3.538,0],[-2.122,-1.415],[2.123,-1.415],[3.538,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.699,79.58],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.668,0],[0,10.986],[0,0],[-4.689,0],[0,0],[0,-4.69]],"o":[[0,9.676],[-9.109,0],[0,0],[0,-4.69],[0,0],[4.689,0],[0,0]],"v":[[17.514,1.229],[0,18.742],[-17.514,0.676],[-17.514,-10.251],[-9.022,-18.742],[9.022,-18.742],[17.514,-10.251]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.922000002394,0.823999980852,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,36.448],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.039,-4.771],[0.105,-0.111],[0,-2.737],[0,0],[2.948,0],[0,0],[4.689,0],[0,0],[0,-4.69],[0,0],[0,2.348],[0,0],[-6.521,6.286],[-8.702,-3.91],[0.286,-0.118],[0,0],[-0.365,-0.039],[0,0]],"o":[[0.083,0.129],[-1.874,1.985],[0,0],[0,2.191],[0,0],[0,-4.69],[0,0],[-4.689,0],[0,0],[-2.522,0],[0,0],[-0.057,-2.56],[7.581,-7.308],[0.283,0.128],[0,0],[-0.34,0.14],[0,0],[5.278,0.563]],"v":[[23.495,-3.346],[23.449,-2.91],[20.528,4.443],[20.528,14.096],[15.928,18.436],[15.928,7.509],[7.437,-0.982],[-10.607,-0.982],[-19.098,7.509],[-19.098,18.436],[-23.521,14.096],[-23.521,6.745],[-16.94,-11.129],[11.36,-13.928],[11.349,-13.277],[9.079,-12.344],[9.176,-11.665],[10.278,-11.546]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.263000009574,0.301999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.078,18.687],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.782],[0,0],[-7.286,0.003],[-1.305,2.008],[-4.558,3.894],[-2.577,-0.001]],"o":[[0,0],[0,0.782],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.577,-0.001],[4.555,3.892],[1.306,2.008],[7.287,0.003]],"v":[[27.243,4.084],[27.243,11.028],[25.827,12.444],[-25.827,12.444],[-27.243,11.028],[-27.243,4.084],[-14.049,-9.108],[-7.898,-12.444],[7.898,-12.444],[14.049,-9.108]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.310000011968,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,71.559],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.783],[0,0],[-7.288,0.002],[-1.306,2.009],[0,1.416],[0,0],[0,7.301],[0,0],[0,2.348],[0,0],[-6.521,6.285],[-8.704,-3.909],[0.287,-0.118],[0,0],[-0.364,-0.038],[0,0],[-3.039,-4.769],[0.104,-0.111],[0,-2.737],[0,0],[2.397,0],[0,0],[0,0],[6.35,-2.628],[0,0],[-1.322,-2.033],[-2.576,-0.002]],"o":[[0,0],[0,0.783],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.002],[1.311,-2.016],[0,0],[-6.35,-2.628],[0,0],[-2.522,0],[0,0],[-0.057,-2.559],[7.582,-7.308],[0.283,0.127],[0,0],[-0.34,0.14],[0,0],[5.277,0.564],[0.082,0.128],[-1.875,1.984],[0,0],[0,2.397],[0,0],[0,0],[0,7.301],[0,0],[0,1.375],[1.306,2.009],[7.289,0.002]],"v":[[27.243,33.516],[27.243,40.46],[25.827,41.876],[-25.827,41.876],[-27.243,40.46],[-27.243,33.516],[-14.048,20.324],[-7.898,16.988],[-6.722,11.803],[-6.696,11.737],[-17.513,-4.449],[-17.513,-5.003],[-21.936,-9.344],[-21.936,-16.696],[-15.355,-34.568],[12.946,-37.369],[12.933,-36.718],[10.664,-35.784],[10.761,-35.105],[11.863,-34.986],[25.081,-26.786],[25.035,-26.35],[22.113,-18.997],[22.113,-9.344],[17.771,-5.003],[17.513,-5.003],[17.513,-4.449],[6.696,11.737],[6.722,11.803],[7.898,16.988],[14.048,20.324]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.728999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,42.127],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":509,"st":9,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Layer 30 Outlines 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[0]},{"t":13,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1639.294,0],"ix":2},"a":{"a":0,"k":[41.475,41.474,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.47,0],[0,0],[0,8.47],[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0]],"o":[[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0],[8.47,0],[0,0],[0,8.47]],"v":[[25.889,41.224],[-25.889,41.224],[-41.224,25.888],[-41.224,-25.889],[-25.889,-41.224],[25.889,-41.224],[41.224,-25.889],[41.224,25.888]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.474,41.474],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":509,"st":9,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Layer 31 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[0]},{"t":11,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1783.372,1769.692,0],"ix":2},"a":{"a":0,"k":[27.754,27.753,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.857,9.546],[-12.873,0.531],[-10.508,-1.835],[-3.857,4.816],[10.507,-9.546],[12.873,-7.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.97,27.129],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-15.19],[15.189,0],[0,15.19],[-15.19,0]],"o":[[0,15.19],[-15.19,0],[0,-15.19],[15.189,0]],"v":[[27.504,0],[0,27.503],[-27.504,0],[0,-27.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.13300000359,0.13300000359,0.13300000359,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.753,27.753],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":507,"st":7,"bm":0},{"ddd":0,"ind":22,"ty":2,"nm":"Layer 32","refId":"image_84","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[0]},{"t":11,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1606.167,1771.868,0],"ix":2},"a":{"a":0,"k":[39.18,16.972,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":7,"op":507,"st":7,"bm":0},{"ddd":0,"ind":23,"ty":2,"nm":"Layer 33","refId":"image_85","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[0]},{"t":11,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365.121,1769.099,0],"ix":2},"a":{"a":0,"k":[76.946,35.517,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":7,"op":507,"st":7,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Layer 19 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[0]},{"t":11,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1768.641,0],"ix":2},"a":{"a":0,"k":[27.493,42.126,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.287,-0.118],[0.72,0.111],[3.461,-11.285],[0,0],[0,-2.126],[0,0],[0,3.115],[0,0],[-6.522,6.285],[-8.704,-3.909]],"o":[[-2.079,0.856],[-11.619,-1.802],[0,0],[-1.295,1.49],[0,0],[0,2.863],[0,0],[-0.057,-2.559],[7.581,-7.308],[0.283,0.127]],"v":[[17.315,-12.666],[14.219,-11.731],[-11.054,2.559],[-11.054,2.561],[-13.131,8.123],[-13.131,14.761],[-17.554,14.709],[-17.554,7.356],[-10.972,-10.515],[17.328,-13.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.301999978458,0.305999995213,0.349000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.111,18.074],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.899,-0.911],[-0.753,-0.007],[0,-7.306],[0,0],[-1.368,0],[0,0],[0,0.782],[0,0],[7.287,0.002],[1.305,2.008],[0.593,-0.354]],"o":[[0.654,0.206],[7.305,0.064],[0,0],[0,1.368],[0,0],[0.782,0],[0,0],[0,-7.287],[-2.576,-0.001],[-0.526,0.449],[-2.61,1.555]],"v":[[-8.504,-4.835],[-6.397,-4.509],[6.864,8.637],[6.864,9.967],[9.341,12.444],[10.403,12.444],[11.819,11.028],[11.819,4.084],[-1.377,-9.108],[-7.527,-12.444],[-9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.910000011968,0.282000014361,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.918,71.559],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.899,-0.911],[0.753,-0.007],[0,-7.306],[0,0],[1.368,0],[0,0],[0,0.782],[0,0],[-7.287,0.002],[-1.305,2.008],[-0.593,-0.354]],"o":[[-0.654,0.206],[-7.305,0.064],[0,0],[0,1.368],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.001],[0.526,0.449],[2.61,1.555]],"v":[[8.505,-4.835],[6.397,-4.509],[-6.864,8.637],[-6.864,9.967],[-9.341,12.444],[-10.403,12.444],[-11.819,11.028],[-11.819,4.084],[1.377,-9.108],[7.527,-12.444],[9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.426999978458,0.477999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.068,71.559],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.24,-0.995],[4.697,1.966],[0,1.264],[0,0],[-4.269,1.772],[0,0]],"o":[[-4.358,1.825],[0.24,-0.995],[0,0],[4.26,1.768],[0,0],[0,1.265]],"v":[[6.922,0.502],[-6.922,0.502],[-6.722,-2.402],[-6.696,-2.468],[6.696,-2.468],[6.722,-2.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.838999968884,0.651000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,56.332],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.845,-3.032],[3.153,1.265],[0,7.347],[0,0],[-0.939,1.367],[0,-2.203],[0,0]],"o":[[2.88,1.801],[-6.48,-2.602],[0,0],[0,-1.784],[1.153,-1.676],[0,0],[0,6.459]],"v":[[5.334,11.526],[2.791,16.48],[-8.214,0.217],[-8.214,-11.264],[-6.724,-16.07],[-2.907,-14.801],[-2.907,-3.321]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.952999997606,0.894000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.194,37.46],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.782,0],[0,0],[0,0.782],[-0.782,0],[0,0],[0,-0.781]],"o":[[0,0],[-0.782,0],[0,-0.781],[0,0],[0.782,0],[0,0.782]],"v":[[2.123,1.415],[-2.122,1.415],[-3.538,0],[-2.122,-1.415],[2.123,-1.415],[3.538,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.699,79.58],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.668,0],[0,10.986],[0,0],[-4.689,0],[0,0],[0,-4.69]],"o":[[0,9.676],[-9.109,0],[0,0],[0,-4.69],[0,0],[4.689,0],[0,0]],"v":[[17.514,1.229],[0,18.742],[-17.514,0.676],[-17.514,-10.251],[-9.022,-18.742],[9.022,-18.742],[17.514,-10.251]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.922000002394,0.823999980852,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,36.448],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.039,-4.771],[0.105,-0.111],[0,-2.737],[0,0],[2.948,0],[0,0],[4.689,0],[0,0],[0,-4.69],[0,0],[0,2.348],[0,0],[-6.521,6.286],[-8.702,-3.91],[0.286,-0.118],[0,0],[-0.365,-0.039],[0,0]],"o":[[0.083,0.129],[-1.874,1.985],[0,0],[0,2.191],[0,0],[0,-4.69],[0,0],[-4.689,0],[0,0],[-2.522,0],[0,0],[-0.057,-2.56],[7.581,-7.308],[0.283,0.128],[0,0],[-0.34,0.14],[0,0],[5.278,0.563]],"v":[[23.495,-3.346],[23.449,-2.91],[20.528,4.443],[20.528,14.096],[15.928,18.436],[15.928,7.509],[7.437,-0.982],[-10.607,-0.982],[-19.098,7.509],[-19.098,18.436],[-23.521,14.096],[-23.521,6.745],[-16.94,-11.129],[11.36,-13.928],[11.349,-13.277],[9.079,-12.344],[9.176,-11.665],[10.278,-11.546]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.263000009574,0.301999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.078,18.687],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.782],[0,0],[-7.286,0.003],[-1.305,2.008],[-4.558,3.894],[-2.577,-0.001]],"o":[[0,0],[0,0.782],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.577,-0.001],[4.555,3.892],[1.306,2.008],[7.287,0.003]],"v":[[27.243,4.084],[27.243,11.028],[25.827,12.444],[-25.827,12.444],[-27.243,11.028],[-27.243,4.084],[-14.049,-9.108],[-7.898,-12.444],[7.898,-12.444],[14.049,-9.108]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.310000011968,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,71.559],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.783],[0,0],[-7.288,0.002],[-1.306,2.009],[0,1.416],[0,0],[0,7.301],[0,0],[0,2.348],[0,0],[-6.521,6.285],[-8.704,-3.909],[0.287,-0.118],[0,0],[-0.364,-0.038],[0,0],[-3.039,-4.769],[0.104,-0.111],[0,-2.737],[0,0],[2.397,0],[0,0],[0,0],[6.35,-2.628],[0,0],[-1.322,-2.033],[-2.576,-0.002]],"o":[[0,0],[0,0.783],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.002],[1.311,-2.016],[0,0],[-6.35,-2.628],[0,0],[-2.522,0],[0,0],[-0.057,-2.559],[7.582,-7.308],[0.283,0.127],[0,0],[-0.34,0.14],[0,0],[5.277,0.564],[0.082,0.128],[-1.875,1.984],[0,0],[0,2.397],[0,0],[0,0],[0,7.301],[0,0],[0,1.375],[1.306,2.009],[7.289,0.002]],"v":[[27.243,33.516],[27.243,40.46],[25.827,41.876],[-25.827,41.876],[-27.243,40.46],[-27.243,33.516],[-14.048,20.324],[-7.898,16.988],[-6.722,11.803],[-6.696,11.737],[-17.513,-4.449],[-17.513,-5.003],[-21.936,-9.344],[-21.936,-16.696],[-15.355,-34.568],[12.946,-37.369],[12.933,-36.718],[10.664,-35.784],[10.761,-35.105],[11.863,-34.986],[25.081,-26.786],[25.035,-26.35],[22.113,-18.997],[22.113,-9.344],[17.771,-5.003],[17.513,-5.003],[17.513,-4.449],[6.696,11.737],[6.722,11.803],[7.898,16.988],[14.048,20.324]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.728999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,42.127],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":507,"st":7,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":"Layer 30 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":7,"s":[0]},{"t":11,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1769.294,0],"ix":2},"a":{"a":0,"k":[41.475,41.474,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.47,0],[0,0],[0,8.47],[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0]],"o":[[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0],[8.47,0],[0,0],[0,8.47]],"v":[[25.889,41.224],[-25.889,41.224],[-41.224,25.888],[-41.224,-25.889],[-25.889,-41.224],[25.889,-41.224],[41.224,-25.889],[41.224,25.888]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.474,41.474],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":7,"op":507,"st":7,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"Layer 27 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":4,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1783.372,1900.793,0],"ix":2},"a":{"a":0,"k":[27.754,27.753,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-3.857,9.546],[-12.873,0.531],[-10.508,-1.835],[-3.857,4.816],[10.507,-9.546],[12.873,-7.182]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.97,27.129],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-15.19],[15.189,0],[0,15.19],[-15.19,0]],"o":[[0,15.19],[-15.19,0],[0,-15.19],[15.189,0]],"v":[[27.504,0],[0,27.503],[-27.504,0],[0,-27.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.611999990426,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.753,27.753],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":504,"st":4,"bm":0},{"ddd":0,"ind":27,"ty":2,"nm":"Layer 28","refId":"image_86","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":4,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1606.168,1901.174,0],"ix":2},"a":{"a":0,"k":[39.176,18.769,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":4,"op":504,"st":4,"bm":0},{"ddd":0,"ind":28,"ty":2,"nm":"Layer 29","refId":"image_87","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":4,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1365.121,1900.2,0],"ix":2},"a":{"a":0,"k":[76.946,35.517,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":4,"op":504,"st":4,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":"Layer 19 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":4,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1900.141,0],"ix":2},"a":{"a":0,"k":[27.493,42.126,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.287,-0.118],[0.72,0.111],[3.461,-11.285],[0,0],[0,-2.126],[0,0],[0,3.115],[0,0],[-6.522,6.285],[-8.704,-3.909]],"o":[[-2.079,0.856],[-11.619,-1.802],[0,0],[-1.295,1.49],[0,0],[0,2.863],[0,0],[-0.057,-2.559],[7.581,-7.308],[0.283,0.127]],"v":[[17.315,-12.666],[14.219,-11.731],[-11.054,2.559],[-11.054,2.561],[-13.131,8.123],[-13.131,14.761],[-17.554,14.709],[-17.554,7.356],[-10.972,-10.515],[17.328,-13.316]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.301999978458,0.305999995213,0.349000010771,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[23.111,18.074],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.899,-0.911],[-0.753,-0.007],[0,-7.306],[0,0],[-1.368,0],[0,0],[0,0.782],[0,0],[7.287,0.002],[1.305,2.008],[0.593,-0.354]],"o":[[0.654,0.206],[7.305,0.064],[0,0],[0,1.368],[0,0],[0.782,0],[0,0],[0,-7.287],[-2.576,-0.001],[-0.526,0.449],[-2.61,1.555]],"v":[[-8.504,-4.835],[-6.397,-4.509],[6.864,8.637],[6.864,9.967],[9.341,12.444],[10.403,12.444],[11.819,11.028],[11.819,4.084],[-1.377,-9.108],[-7.527,-12.444],[-9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.910000011968,0.282000014361,0.340999977261,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.918,71.559],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.899,-0.911],[0.753,-0.007],[0,-7.306],[0,0],[1.368,0],[0,0],[0,0.782],[0,0],[-7.287,0.002],[-1.305,2.008],[-0.593,-0.354]],"o":[[-0.654,0.206],[-7.305,0.064],[0,0],[0,1.368],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.001],[0.526,0.449],[2.61,1.555]],"v":[[8.505,-4.835],[6.397,-4.509],[-6.864,8.637],[-6.864,9.967],[-9.341,12.444],[-10.403,12.444],[-11.819,11.028],[-11.819,4.084],[1.377,-9.108],[7.527,-12.444],[9.209,-11.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.426999978458,0.477999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.068,71.559],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.24,-0.995],[4.697,1.966],[0,1.264],[0,0],[-4.269,1.772],[0,0]],"o":[[-4.358,1.825],[0.24,-0.995],[0,0],[4.26,1.768],[0,0],[0,1.265]],"v":[[6.922,0.502],[-6.922,0.502],[-6.722,-2.402],[-6.696,-2.468],[6.696,-2.468],[6.722,-2.402]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.838999968884,0.651000019148,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,56.332],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.845,-3.032],[3.153,1.265],[0,7.347],[0,0],[-0.939,1.367],[0,-2.203],[0,0]],"o":[[2.88,1.801],[-6.48,-2.602],[0,0],[0,-1.784],[1.153,-1.676],[0,0],[0,6.459]],"v":[[5.334,11.526],[2.791,16.48],[-8.214,0.217],[-8.214,-11.264],[-6.724,-16.07],[-2.907,-14.801],[-2.907,-3.321]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.952999997606,0.894000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.194,37.46],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.782,0],[0,0],[0,0.782],[-0.782,0],[0,0],[0,-0.781]],"o":[[0,0],[-0.782,0],[0,-0.781],[0,0],[0.782,0],[0,0.782]],"v":[[2.123,1.415],[-2.122,1.415],[-3.538,0],[-2.122,-1.415],[2.123,-1.415],[3.538,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.699,79.58],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[9.668,0],[0,10.986],[0,0],[-4.689,0],[0,0],[0,-4.69]],"o":[[0,9.676],[-9.109,0],[0,0],[0,-4.69],[0,0],[4.689,0],[0,0]],"v":[[17.514,1.229],[0,18.742],[-17.514,0.676],[-17.514,-10.251],[-9.022,-18.742],[9.022,-18.742],[17.514,-10.251]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.922000002394,0.823999980852,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,36.448],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.039,-4.771],[0.105,-0.111],[0,-2.737],[0,0],[2.948,0],[0,0],[4.689,0],[0,0],[0,-4.69],[0,0],[0,2.348],[0,0],[-6.521,6.286],[-8.702,-3.91],[0.286,-0.118],[0,0],[-0.365,-0.039],[0,0]],"o":[[0.083,0.129],[-1.874,1.985],[0,0],[0,2.191],[0,0],[0,-4.69],[0,0],[-4.689,0],[0,0],[-2.522,0],[0,0],[-0.057,-2.56],[7.581,-7.308],[0.283,0.128],[0,0],[-0.34,0.14],[0,0],[5.278,0.563]],"v":[[23.495,-3.346],[23.449,-2.91],[20.528,4.443],[20.528,14.096],[15.928,18.436],[15.928,7.509],[7.437,-0.982],[-10.607,-0.982],[-19.098,7.509],[-19.098,18.436],[-23.521,14.096],[-23.521,6.745],[-16.94,-11.129],[11.36,-13.928],[11.349,-13.277],[9.079,-12.344],[9.176,-11.665],[10.278,-11.546]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.258999992819,0.263000009574,0.301999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.078,18.687],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.782],[0,0],[-7.286,0.003],[-1.305,2.008],[-4.558,3.894],[-2.577,-0.001]],"o":[[0,0],[0,0.782],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.577,-0.001],[4.555,3.892],[1.306,2.008],[7.287,0.003]],"v":[[27.243,4.084],[27.243,11.028],[25.827,12.444],[-25.827,12.444],[-27.243,11.028],[-27.243,4.084],[-14.049,-9.108],[-7.898,-12.444],[7.898,-12.444],[14.049,-9.108]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.310000011968,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,71.559],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-7.287],[0,0],[0.782,0],[0,0],[0,0.783],[0,0],[-7.288,0.002],[-1.306,2.009],[0,1.416],[0,0],[0,7.301],[0,0],[0,2.348],[0,0],[-6.521,6.285],[-8.704,-3.909],[0.287,-0.118],[0,0],[-0.364,-0.038],[0,0],[-3.039,-4.769],[0.104,-0.111],[0,-2.737],[0,0],[2.397,0],[0,0],[0,0],[6.35,-2.628],[0,0],[-1.322,-2.033],[-2.576,-0.002]],"o":[[0,0],[0,0.783],[0,0],[-0.782,0],[0,0],[0,-7.287],[2.576,-0.002],[1.311,-2.016],[0,0],[-6.35,-2.628],[0,0],[-2.522,0],[0,0],[-0.057,-2.559],[7.582,-7.308],[0.283,0.127],[0,0],[-0.34,0.14],[0,0],[5.277,0.564],[0.082,0.128],[-1.875,1.984],[0,0],[0,2.397],[0,0],[0,0],[0,7.301],[0,0],[0,1.375],[1.306,2.009],[7.289,0.002]],"v":[[27.243,33.516],[27.243,40.46],[25.827,41.876],[-25.827,41.876],[-27.243,40.46],[-27.243,33.516],[-14.048,20.324],[-7.898,16.988],[-6.722,11.803],[-6.696,11.737],[-17.513,-4.449],[-17.513,-5.003],[-21.936,-9.344],[-21.936,-16.696],[-15.355,-34.568],[12.946,-37.369],[12.933,-36.718],[10.664,-35.784],[10.761,-35.105],[11.863,-34.986],[25.081,-26.786],[25.035,-26.35],[22.113,-18.997],[22.113,-9.344],[17.771,-5.003],[17.513,-5.003],[17.513,-4.449],[6.696,11.737],[6.722,11.803],[7.898,16.988],[14.048,20.324]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.875,0.728999956916,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.493,42.127],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":504,"st":4,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"Layer 30 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":4,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1213.45,1900.794,0],"ix":2},"a":{"a":0,"k":[41.475,41.474,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.47,0],[0,0],[0,8.47],[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0]],"o":[[0,0],[-8.47,0],[0,0],[0,-8.469],[0,0],[8.47,0],[0,0],[0,8.47]],"v":[[25.889,41.224],[-25.889,41.224],[-41.224,25.888],[-41.224,-25.889],[-25.889,-41.224],[25.889,-41.224],[41.224,-25.889],[41.224,25.888]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.474,41.474],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":504,"st":4,"bm":0},{"ddd":0,"ind":31,"ty":2,"nm":"Layer 54","refId":"image_88","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1308.227,2063.719,0],"ix":2},"a":{"a":0,"k":[169.836,51.917,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":13,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":32,"ty":2,"nm":"Layer 55","refId":"image_89","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1678.875,2063.719,0],"ix":2},"a":{"a":0,"k":[166.251,48.332,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":13,"s":[100,100,100]}],"ix":6}},"ao":0,"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"Layer 58 Outlines 2","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[1493.551,2484.521,0],"to":[0,-140.333,0],"ti":[0,140.333,0]},{"t":22,"s":[1493.551,1642.521,0]}],"ix":2},"a":{"a":0,"k":[418.244,558.203,0],"ix":1},"s":{"a":0,"k":[96.272,96.272,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[67.757,0],[0,0],[0,67.757],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[0,67.757]],"v":[[295.559,558.199],[-295.559,558.199],[-418.244,435.514],[-418.244,-435.514],[-295.559,-558.199],[295.559,-558.199],[418.244,-435.514],[418.244,435.514]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.140238204657,0.140238204657,0.140238204657,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.244,558.203],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Layer 58 Outlines","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[1493.551,1642.521,0],"ix":2},"a":{"a":0,"k":[418.244,558.203,0],"ix":1},"s":{"a":0,"k":[96.272,96.272,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[67.757,0],[0,0],[0,67.757],[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0]],"o":[[0,0],[-67.757,0],[0,0],[0,-67.757],[0,0],[67.757,0],[0,0],[0,67.757]],"v":[[295.559,558.199],[-295.559,558.199],[-418.244,435.514],[-418.244,-435.514],[-295.559,-558.199],[295.559,-558.199],[418.244,-435.514],[418.244,435.514]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.140238204657,0.140238204657,0.140238204657,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[418.244,558.203],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":500,"st":0,"bm":0}]}],"fonts":{"list":[{"fName":"Helvetica-Light","fFamily":"Helvetica","fStyle":"Light","ascent":75.8044732082635}]},"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"DVMD Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[97.375,94.25,0],"ix":2},"a":{"a":0,"k":[450,450,0],"ix":1},"s":{"a":0,"k":[13.889,13.889,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.197,9.813],[-11.434,-0.083],[0.128,-9.904],[9.6,-0.001]],"o":[[-0.167,-9.023],[10.804,0.078],[-0.137,10.667],[-10.442,0.002]],"v":[[-18.409,-0.022],[0.152,-18.416],[18.478,0.244],[0.03,18.497]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[276.638,735.06],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.197,9.813],[-11.434,-0.083],[0.128,-9.904],[9.6,-0.001]],"o":[[-0.167,-9.023],[10.804,0.078],[-0.137,10.667],[-10.442,0.002]],"v":[[-18.409,-0.022],[0.152,-18.416],[18.478,0.244],[0.03,18.497]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[623.177,734.708],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.001,-4.324],[0.003,-4.037],[0.049,-0.572],[0.417,-0.053],[0.384,0],[5.572,0.001],[0.383,0.028],[-0.014,0.678],[0.001,0.384],[-0.004,8.169],[-0.099,0.562],[-0.232,0.095],[-0.287,0],[-5.956,-0.013],[-0.005,-1.477]],"o":[[0,4.036],[-0.001,0.575],[-0.035,0.418],[-0.38,0.047],[-5.572,0.003],[-0.383,0],[-0.695,-0.051],[0.008,-0.384],[0,-8.169],[0,-0.575],[0.037,-0.209],[0.254,-0.103],[5.956,-0.003],[1.312,0.003],[0.017,4.324]],"v":[[10.392,-0.032],[10.391,12.077],[10.345,13.802],[9.611,14.544],[8.46,14.587],[-8.256,14.588],[-9.407,14.558],[-10.388,13.422],[-10.394,12.269],[-10.391,-12.237],[-10.3,-13.958],[-9.727,-14.488],[-8.875,-14.571],[8.993,-14.567],[10.385,-13.005]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[498.328,758.914],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.067,1.567],[-1.721,0.004],[-4.801,0.097],[-0.422,-1.128],[-2.887,-7.627],[-2.922,-7.716],[-0.254,-0.616],[-0.287,0.754],[-3.896,10.323],[-1.865,5.039],[-0.94,-0.007],[-6.532,-0.042],[-0.193,-0.05],[0.259,-0.688],[9.333,-24.677],[0.145,-0.457],[0.661,-0.005],[0.288,0],[6.148,-0.052],[0.445,1.189],[5.126,13.55],[4.122,10.955]],"o":[[1.918,0],[4.804,-0.009],[1.316,-0.027],[2.859,7.638],[2.921,7.717],[0.237,0.623],[1.025,-0.381],[3.929,-10.31],[1.897,-5.027],[0.305,-0.824],[6.532,0.053],[0.186,0.001],[0.238,0.823],[-9.311,24.685],[-0.17,0.448],[-0.198,0.623],[-0.288,0.001],[-6.149,0],[-1.265,0.011],[-5.082,-13.566],[-4.141,-10.947],[-0.4,-1.063]],"v":[[-40.457,-39.351],[-35.096,-39.352],[-20.686,-39.417],[-18.401,-37.786],[-9.75,-14.901],[-0.991,8.25],[-0.229,10.1],[1.059,7.945],[12.762,-23.017],[18.449,-38.098],[20.059,-39.389],[39.655,-39.27],[40.22,-39.13],[39.694,-36.948],[11.714,37.09],[11.206,38.436],[9.952,39.398],[9.089,39.41],[-9.358,39.433],[-11.634,37.8],[-26.992,-2.857],[-39.397,-35.707]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[371.889,733.962],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.998,0.204],[0,0.929],[-0.001,9.511],[-0.011,0.768],[-0.562,0.016],[-0.288,0],[-5.666,0],[-0.288,-0.011],[0.001,-0.731],[0,-0.768],[-0.003,-20.75],[0.354,-2.972],[16.761,-3.249],[4.534,19.424],[-20.784,4.438],[-7.888,-3.48]],"o":[[0.02,-0.909],[0.005,-9.51],[0,-0.768],[0.009,-0.575],[0.288,-0.008],[5.666,-0.001],[0.288,0],[0.654,0.026],[-0.001,0.768],[0.001,20.75],[0,2.977],[-1.94,16.292],[-21.989,4.263],[-5.199,-22.273],[8.436,-1.801],[0.674,0.297]],"v":[[20.506,-21.658],[20.565,-24.425],[20.569,-52.956],[20.588,-55.26],[21.471,-56.129],[22.335,-56.146],[39.333,-56.147],[40.197,-56.136],[41.282,-55.115],[41.293,-52.81],[41.296,9.439],[40.937,18.354],[9.742,51.884],[-36.097,22.561],[-6.256,-24.897],[18.226,-22.321]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[621.155,721.312],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.312,-0.039],[0,0.949],[-0.001,9.415],[-0.031,0.767],[-0.595,0.017],[-0.288,0],[-5.667,-0.002],[-0.381,-0.037],[-0.038,-0.434],[0,-0.575],[0.003,-22],[5.609,-7.257],[11.294,-1.213],[3.703,20.023],[-19.977,4.718],[-8.026,-3.457]],"o":[[0,-1.088],[0,-9.415],[0,-0.768],[0.022,-0.532],[0.288,-0.008],[5.666,-0.002],[0.383,0.001],[0.419,0.042],[0.049,0.573],[0.002,22],[-0.002,9.114],[-6.922,8.954],[-19.956,2.144],[-3.944,-21.329],[8.463,-1.998],[0.776,0.334]],"v":[[20.143,-20.841],[20.143,-23.827],[20.143,-52.072],[20.161,-54.377],[21.031,-55.297],[21.896,-55.318],[38.895,-55.318],[40.043,-55.272],[40.801,-54.565],[40.863,-52.84],[40.865,13.16],[32.811,37.884],[5.478,53.176],[-36.923,21.503],[-7.444,-24.002],[17.361,-21.774]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[275.044,720.119],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.063,-0.623],[-4.587,0.704],[-4.496,-0.75],[-4.067,-2.249],[-3.056,-3.3],[-0.682,0.642],[-10.285,0.159],[-8.266,-14.283],[-0.012,-7.225],[0.003,-11.534],[0.056,-0.475],[0.41,-0.039],[0.479,0],[5.477,0],[0.287,0.016],[0.05,1.198],[0,0.48],[-0.222,11.529],[11.403,0.968],[1.992,-9.632],[0.116,-0.953],[0.674,0],[4.515,0.001],[1.729,0.041],[0.034,0.592],[0.24,1.138],[10.26,-0.487],[1.48,-9.371],[0.001,-1.343],[0.001,-11.437],[3.246,-0.003],[5.092,0.003],[0.575,0.03],[0.04,0.427],[0,0.575],[-0.002,24.796],[-0.085,0.565],[-0.377,-0.005],[-0.383,0.001],[-5.668,-0.001],[-0.382,-0.03],[-0.004,-0.566],[-0.02,-0.96]],"o":[[4.305,-2.012],[4.505,-0.691],[4.594,0.767],[3.98,2.202],[1.078,-0.463],[7.509,-7.075],[16.502,-0.255],[3.647,6.303],[0.019,11.533],[0,0.478],[-0.05,0.435],[-0.476,0.046],[-5.477,0.003],[-0.288,0],[-1.085,-0.06],[-0.02,-0.48],[0.001,-11.534],[0.185,-9.554],[-10.052,-0.853],[-0.194,0.939],[-0.087,0.712],[-4.516,-0.004],[-1.73,-0.001],[-0.509,-0.012],[-0.066,-1.15],[-1.816,-8.581],[-9.233,0.438],[-0.208,1.319],[-0.013,11.437],[0,3.161],[-5.092,0.005],[-0.576,0],[-0.429,-0.023],[-0.054,-0.571],[-0.003,-24.796],[0,-0.576],[0.034,-0.226],[0.382,0.005],[5.668,-0.004],[0.384,0],[0.555,0.045],[0.008,0.961],[0.007,0.367]],"v":[[-50.158,-34.527],[-37.035,-38.978],[-23.561,-38.949],[-10.599,-34.378],[-0.094,-26.021],[2.188,-27.967],[28.895,-39.257],[66.12,-17.909],[71.129,2.566],[71.132,37.167],[71.059,38.601],[70.282,39.301],[68.845,39.351],[52.415,39.353],[51.551,39.345],[50.253,37.91],[50.246,36.469],[50.303,1.87],[31.86,-18.501],[10.801,-2.6],[10.372,0.248],[9.215,1.219],[-4.332,1.221],[-9.52,1.188],[-10.439,0.298],[-10.881,-3.123],[-31.338,-18.75],[-50.112,-1.78],[-50.288,2.246],[-50.296,36.558],[-53.296,39.439],[-68.573,39.439],[-70.301,39.404],[-71.059,38.704],[-71.124,36.981],[-71.125,-37.408],[-71.064,-39.133],[-70.475,-39.661],[-69.326,-39.716],[-52.321,-39.718],[-51.17,-39.686],[-50.312,-38.765],[-50.29,-35.882]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[498.372,734.148],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.179,-0.727],[0,0.404],[2.046,0.45],[0.22,1.658],[-0.812,0.61],[-1.78,-1.677],[-2.514,2.709],[-0.157,-0.798],[1.17,-0.347],[-1.153,-0.538],[-0.946,-0.691],[-0.905,-0.73],[-0.462,-0.349],[-0.158,-0.429],[-0.054,-0.627],[-0.022,-3.109],[1.03,0.435],[0.412,0.27],[0.47,0.344],[0.494,0.371],[0.65,0.426],[0.339,0.192],[0.528,0.238],[0.432,0.145],[0.736,0.078],[1.063,-0.254],[1.253,-0.786],[1.969,-1.191],[1.771,1.268],[-0.593,0.107]],"o":[[0.384,0.128],[0.002,-1.03],[-1.201,-0.265],[-0.226,-1.696],[1.592,-1.196],[1.496,1.408],[0.715,-0.772],[0.235,1.192],[-2.61,0.772],[1.086,0.506],[0.94,0.687],[0.452,0.364],[0.428,0.322],[0.193,0.523],[0.057,0.653],[0.008,1.117],[-1.712,-0.723],[-0.512,-0.336],[-0.519,-0.381],[-0.638,-0.48],[-0.324,-0.212],[-0.536,-0.302],[-0.432,-0.194],[-0.721,-0.241],[-0.993,-0.106],[-1.544,0.368],[-1.291,0.811],[-0.498,-1.955],[-0.383,-0.274],[3.333,-0.595]],"v":[[-8.334,-9.166],[-7.505,-9.701],[-7.393,-10.841],[-10.26,-12.502],[-7.955,-14.427],[-3.659,-14.094],[3.057,-13.567],[5.734,-13.55],[3.81,-10.378],[4.172,-7.328],[7.508,-6.886],[9.633,-3.098],[12.583,-0.884],[13.026,1.703],[15.092,5.216],[14.87,13.896],[12.716,15.336],[8.552,13.481],[6.191,13.481],[4.657,10.628],[3.682,8.315],[1.765,4.507],[-1.362,4.232],[-3.667,1.248],[-5.615,-0.342],[-8.37,-0.79],[-10.912,-1.289],[-12.437,2.958],[-14.766,-2.33],[-11.526,-6.366]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[567.935,369.048],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.402,-0.076],[1.718,0.393],[0.273,-0.394],[0.426,-0.565],[0.815,0.136],[0.504,1.659],[0.291,1.862],[-1.688,2.103],[-4.633,0.453],[-2.033,-1.564],[-0.054,-0.005],[-1.513,-2.411],[0.617,-0.27],[1.055,-1.44]],"o":[[-1.779,-0.802],[-0.538,-0.122],[-0.402,0.581],[-0.508,0.675],[-1.521,-0.253],[-0.452,-1.483],[-0.483,-3.089],[3.154,-3.929],[2.301,-0.225],[0.061,0.047],[3.791,0.314],[0.358,0.569],[-1.524,0.667],[-0.2,0.273]],"v":[[8.265,3.344],[3.074,3.308],[2.014,4.095],[0.741,5.793],[-7.955,9.626],[-11.478,7.274],[-13.816,3.404],[-11.295,-3.827],[1.014,-9.537],[7.899,-7.255],[8.049,-7.079],[13.72,-0.923],[13.682,0.44],[9.54,3.068]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[496.621,315.975],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.112,-0.158],[2.27,0.494],[0.485,1.909],[-1.412,0.55],[0.109,0.801],[0.638,0.261],[2.399,-0.767],[-1.029,1.936],[0.63,0.574],[0.527,-0.435],[0.632,0.374],[-0.27,0.581],[-2.279,0.432],[-0.152,0.306],[-1.79,0.236],[-0.247,0.807],[0.593,0.493],[2.342,2.893],[-0.387,0.448],[-1.228,1.062],[-3.752,-1.823],[-1.069,-3.568],[2.035,-2.031],[-0.299,-1.017],[-0.854,-0.03],[-0.706,-0.7],[-1.852,-0.205],[-0.078,-0.792],[0.443,-0.049],[1.072,-1.021],[-1.669,0.202],[-0.703,-0.14],[-0.149,-1.338],[0.878,-0.425],[-0.071,-1.039],[-0.734,-0.215],[-1.087,-0.4],[-0.562,-2.461],[0.141,-0.008],[0.585,-1.06],[-0.533,-0.803],[0.211,-0.623],[0.038,0.573],[2.916,1.395],[1,-0.122],[0.379,1.878],[0.639,0.517],[0.141,-1.716],[1.51,0.798],[1.244,-1.429],[-0.193,-0.087],[-0.166,-1.128],[-0.111,-1.407],[0.38,-0.051],[-0.052,0.321],[1.317,-0.082],[2.14,-1.839],[0.172,0.397],[-0.488,0.509],[-0.671,0.654],[0.412,0.576],[-0.891,0.13],[-1.111,-0.556],[-1.619,1.271],[0.34,0.457]],"o":[[0.38,0.881],[-1.178,-0.257],[-0.451,-1.777],[0.833,-0.324],[-0.123,-0.907],[-2.671,-1.092],[-1.26,0.402],[0.443,-0.834],[-0.748,-0.682],[-0.517,0.427],[-0.758,-0.448],[0.718,-1.548],[0.355,-0.067],[1.01,-2.037],[0.695,-0.091],[0.294,-0.966],[-2.924,-2.428],[-0.36,-0.446],[1.071,-1.238],[3.214,-2.779],[3.965,1.927],[0.863,2.877],[-0.746,0.745],[0.321,1.095],[0.888,0.032],[1.439,1.43],[0.521,0.057],[0.055,0.559],[-2.269,0.248],[1.205,1.014],[0.713,-0.086],[0.662,0.131],[0.102,0.921],[-0.572,0.277],[0.06,0.879],[1.147,0.335],[2.622,0.966],[-0.249,0.105],[-0.967,0.055],[-0.631,1.145],[0.297,0.448],[-0.308,0.905],[-0.248,-3.709],[-0.986,-0.472],[-2.07,0.253],[-0.165,-0.822],[-1.357,-1.095],[-0.114,1.384],[-1.13,-0.598],[0.182,0.129],[0.82,0.37],[0.196,1.341],[0.031,0.405],[-0.393,0.053],[0.461,-2.831],[-2.17,0.136],[-0.278,0.238],[-0.275,-0.635],[0.649,-0.676],[0.353,-0.345],[-1.747,-2.44],[1.287,-0.188],[2.656,1.33],[0.369,-0.29],[-0.519,-0.698]],"v":[[-6.442,6.086],[-7.177,7.66],[-10.602,6.763],[-8.086,3.576],[-7.049,2.007],[-8.543,1.01],[-15.907,1.812],[-17.339,0.414],[-17.581,-1.732],[-19.38,-1.227],[-21.104,-0.87],[-21.557,-2.773],[-18.526,-6.859],[-17.57,-7.51],[-12.82,-9.643],[-10.989,-10.419],[-12.241,-12.17],[-19.105,-20.967],[-18.922,-22.511],[-15.632,-26.154],[-6.954,-26.962],[-0.918,-17.797],[-3.584,-10.405],[-4.442,-7.892],[-2.299,-6.852],[-0.005,-5.93],[5.295,-4.457],[6.578,-3.786],[5.704,-2.82],[3.253,0.786],[7.411,2.505],[9.51,2.478],[11.389,3.099],[10.053,5.135],[8.455,6.135],[10.141,7.615],[13.357,9.022],[17.52,14.5],[21.721,21.609],[18.953,21.4],[20.652,23.583],[21.327,24.994],[10.621,28.359],[5.121,21.01],[2.12,20.609],[-1.384,17.984],[-2.53,15.991],[-4.78,12.322],[-6.463,13.442],[-8.921,14.432],[-8.384,14.805],[-5.904,15.482],[-5.823,19.674],[-6.782,20.194],[-7.342,19.619],[-10.665,16.974],[-17.168,17.028],[-18.087,16.508],[-17.795,14.76],[-15.818,12.763],[-15.584,11.601],[-13.901,9.471],[-9.956,9.815],[-4.385,7.94],[-4.012,6.715]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[543.094,338.795],"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":"Group 10","np":2,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-237.986],[237.985,0],[0,237.986],[-237.986,0]],"o":[[0,237.986],[-237.986,0],[0,-237.986],[237.985,0]],"v":[[430.911,0],[0.001,430.911],[-430.911,0],[0.001,-430.911]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":31.243,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[450,451.196],"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":"Group 11","np":2,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.985,-0.88],[0.103,2.403],[-3.368,5.403],[-6.055,8.865],[-2.809,4.067],[-2.645,1.882],[0.259,0.86],[0.944,1.73],[-0.239,0.288],[-0.847,2.903],[-1.586,1.413],[-1.064,1.283],[-1.251,4.502],[-1.352,2.058],[-1.802,1.484],[-2.363,1.807],[1.821,0.822],[0.553,1.968],[-0.175,0.145],[-1.655,-2.216],[-0.765,0.157],[-0.057,0.581],[-0.817,0.025],[-0.472,-0.898],[-1.04,0.507],[0.09,0.64],[-0.586,1.418],[-0.303,1.224],[-0.084,0.005],[-0.492,1.428],[-0.582,-0.204],[-1.471,-2.024],[-5.161,-0.073],[2.219,0.729],[1.375,3.294],[-1.206,0.119],[-2.602,0.502],[-4.721,-0.022],[-2.285,0.521],[-2.571,0.071],[-2.133,-0.256],[-2.892,0.574],[-0.209,-0.045],[-4.852,-0.754],[-1.864,-0.174],[-1.137,-0.104],[-8.318,-2.602],[-4.969,-2.545],[-3.889,-2.357],[-5.241,-5.402],[-6.069,-6.464],[-2.272,-4.14],[-3.622,-8.067],[1.514,0.11],[5.344,0.252],[4.677,0.304],[11.471,0.703],[4.296,0.522],[4.253,-0.553],[5.335,0.09],[5.011,1.115],[2.45,-0.052],[6.354,-0.128],[11.448,-0.54],[5.024,-0.361],[2.357,-0.121],[0.047,-3.012],[-0.054,-0.306],[2.181,-4.22],[3.212,-4.364],[2.643,-3.123],[0.91,-1.474],[2.446,-3.553],[1.069,-2.238],[1.629,-4.563]],"o":[[0.443,-2.405],[-0.298,-6.951],[5.678,-9.106],[2.815,-4.121],[1.741,-2.52],[0.775,-0.551],[-0.519,-1.728],[-0.209,-0.382],[1.712,-2.062],[0.573,-1.965],[1.319,-1.176],[2.835,-3.421],[0.671,-2.415],[1.376,-2.094],[2.435,-2.005],[1.658,-1.268],[1.18,-1.039],[-0.037,-0.13],[2.187,-1.815],[0.357,0.479],[0.816,-0.168],[0.069,-0.703],[0.924,-0.03],[0.336,0.64],[0.821,-0.4],[-0.224,-1.584],[0.477,-1.153],[0.056,-0.228],[3.544,-0.21],[0.288,-0.836],[1.469,0.516],[3.111,4.282],[-2.194,-0.804],[-3.692,-1.214],[-0.307,-0.735],[2.73,-0.269],[4.274,-0.825],[2.056,0.01],[2.574,-0.587],[2.084,-0.058],[2.941,0.352],[0.232,-0.046],[4.808,1.035],[1.72,0.268],[1.159,0.109],[8.792,0.804],[5.208,1.629],[3.936,2.017],[6.358,3.853],[6.174,6.364],[3.23,3.441],[4.275,7.791],[0.916,2.039],[-5.339,-0.387],[-4.69,-0.221],[-11.502,-0.749],[-4.26,-0.261],[-4.33,-0.526],[-5.427,0.705],[-5.185,-0.087],[-2.234,-0.498],[-6.358,0.135],[-11.461,0.232],[-4.999,0.236],[-2.36,0.17],[-3.05,0.158],[-0.005,0.315],[0.919,5.159],[-2.528,4.894],[-2.391,3.248],[-0.989,1.169],[-2.256,3.652],[-1.352,1.964],[-2.081,4.361],[-0.442,1.238]],"v":[[-141.987,81.929],[-141.1,74.803],[-133.989,57.126],[-116.128,30.327],[-108.237,17.67],[-103.085,10.033],[-102.443,7.993],[-102.833,2.688],[-102.233,1.809],[-97.419,-4.674],[-93.651,-9.913],[-90.627,-13.936],[-83.632,-25.33],[-79.393,-31.355],[-74.263,-36.66],[-68.709,-43.554],[-69.216,-46.425],[-66.773,-49.866],[-66.357,-50.397],[-56.522,-49.353],[-55.283,-48.129],[-54.73,-49.746],[-53.65,-51.016],[-51.483,-49.897],[-49.969,-48.564],[-50.07,-50.399],[-49.051,-54.913],[-47.676,-58.392],[-47.462,-59.035],[-45.757,-63.262],[-45.281,-65.723],[-40.751,-64.811],[-27.687,-59.202],[-34.275,-61.6],[-41.086,-69.056],[-40.272,-70.392],[-32.618,-72.978],[-20.498,-77.335],[-13.854,-79.233],[-6.086,-79.899],[-0.124,-80.928],[8.631,-81.741],[9.32,-81.884],[23.908,-80.916],[29.389,-80.938],[32.818,-80.496],[58.137,-74.04],[73.473,-68.266],[86.073,-63.186],[104.02,-49.991],[122.496,-30.853],[130.302,-19.16],[141.071,5.088],[139.503,7.184],[123.491,5.991],[109.439,5.087],[74.961,4.647],[62.225,2.416],[49.257,2.287],[33.246,1.743],[17.961,-0.613],[-20.34,-2.965],[-39.391,-2.199],[-73.617,0.587],[-88.631,2.045],[-95.706,2.36],[-99.803,6.522],[-99.799,7.467],[-103.999,20.697],[-113.143,34.23],[-119.9,44.269],[-122.876,48.598],[-129.927,59.447],[-133.583,65.921],[-139.48,79.163]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[450.779,212.27],"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":"Group 12","np":2,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-0.01,-0.01],[0.01,0.01]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.224000010771,0.224000010771,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[691.06,494.241],"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":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.825,-1.257],[-0.83,-1.886],[0.465,-1.646],[0.745,-0.084],[0.098,0.442],[0.134,0.913],[-0.07,-0.496],[-0.859,-3.214],[-0.756,0.007],[0.064,-1.108],[1.099,0.684],[0.614,-0.753],[-0.319,-0.473],[-1.071,0.307],[-0.08,-1.46],[1.027,0.224],[0.268,-0.668],[-0.155,-0.416],[-0.534,-0.554],[0.249,-0.817],[0.789,-1.132],[0.176,-1.94],[-0.461,-1.266],[-0.466,-2.767],[0.298,1.523],[1.664,4.518],[0.23,2],[0.423,5.794],[0.356,5.302],[0.292,6.211],[-0.631,1.86],[-0.221,0.414],[-1.274,0.12],[-0.223,-0.687],[-0.19,-2.359],[0.063,-3.896],[-0.358,-3.652],[-0.217,-0.378],[1.688,-1.485]],"o":[[-1.668,0.327],[0.498,1.133],[-0.11,0.391],[-0.566,0.064],[-0.2,-0.903],[-0.897,-0.132],[0.464,3.27],[0.221,0.827],[1.289,-0.012],[-0.048,0.832],[-0.548,-0.341],[-0.352,0.432],[0.467,0.69],[0.782,-0.224],[0.071,1.313],[-0.506,-0.11],[-0.218,0.541],[0.307,0.823],[0.469,0.488],[-0.394,1.291],[2.151,1.178],[-0.127,1.395],[0.989,2.715],[-1.697,-0.762],[-0.921,-4.711],[-0.65,-1.766],[-0.657,-5.739],[-0.389,-5.321],[-0.419,-6.243],[-0.086,-1.836],[0.148,-0.437],[0.242,-0.45],[0.891,-0.084],[0.755,2.336],[0.312,3.873],[-0.061,3.712],[0.046,0.467],[0.607,1.054],[-1.187,1.044]],"v":[[1.773,-3.303],[0.365,-0.804],[1.06,3.81],[0.646,4.911],[-0.288,4.01],[-0.711,1.266],[-1.753,2.252],[-0.428,12.068],[1.21,13.145],[2.756,14.979],[1.533,15.771],[-0.354,15.61],[-0.307,17.183],[1.647,18.541],[3.227,19.153],[1.583,20.305],[0.159,20.795],[0.67,22.028],[2.337,23.639],[3.536,25.234],[1.419,25.724],[2.808,30.867],[4.79,33.484],[5.725,41.695],[3.371,37.895],[-0.567,24.104],[-1.749,18.231],[-4.605,1.153],[-5.361,-14.81],[-4.659,-33.361],[-2.943,-38.959],[-2.272,-40.193],[-1.953,-41.61],[-0.641,-40.19],[-0.763,-33.203],[-1.174,-21.549],[-0.532,-10.563],[-0.317,-9.18],[-0.289,-6.037]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.224000010771,0.224000010771,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[317.533,578.61],"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":"Group 14","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.845,2.998],[-0.655,1.001],[-3.765,3.416],[-2.488,1.06],[1.69,1.727],[-0.067,-0.013],[-2.052,2.139],[-2.01,0.479],[-1.589,0.797],[-11.985,-2.546],[-5.267,-1.932],[-3.066,-0.668],[-1.707,-1.047],[-6.26,-4.281],[-0.833,-0.587],[-0.505,0.773],[0.538,0.308],[0.196,2.401],[-1.368,-1.008],[-2.543,-1.828],[-1.177,-0.92],[-3.799,-3.341],[-2.18,-2.722],[-3.138,-2.748],[-4.469,-4.532],[-3.197,0.212],[-0.417,-0.538],[-3.311,-3.217],[-1.913,-1.804],[-1.725,-0.259],[-0.147,-0.463],[-1.013,-3.691],[0.755,-1.341],[-0.124,-1.876],[-0.368,0.182],[0.268,-1.655],[-0.629,-0.153],[-2.037,-1.503],[-1.724,-3.167],[0.052,-4.386],[-0.476,-3.289],[0.158,-0.514],[-0.133,1.114],[0.925,4.616],[0.396,0.226],[1.611,2.142],[1.694,0.169],[-0.159,3.142],[0.904,-0.107],[1.542,-0.03],[-0.99,1.112],[0.755,0.922],[1.462,-0.155],[0.209,1.543],[-1.386,0.77],[-0.008,0.967],[0.804,0.252],[1.701,-1.81],[-0.016,1.559],[0.873,-0.475],[0.522,0.704],[-0.588,0.604],[-3.162,1.497],[0.392,0.671],[2.754,2.99],[2.893,1.896],[2.064,1.125],[0.121,-0.065],[0.928,1.178],[1.698,2.582],[0.433,-0.427],[0.851,0.879],[2.093,2.168],[0.733,-0.026],[0.53,1.068],[0.947,1.296],[0.24,-0.343],[-0.451,-0.547],[0.599,-1.711],[1.964,2.759],[0.539,-0.154],[0.234,0.645],[3.836,1.568],[1.818,1.528],[1.602,0.739],[1.407,1.658],[1.641,-1.841],[0.52,0.422],[4.626,-1.242],[1.455,1.134],[2.758,1.123],[1.953,1.254],[1.388,0.308],[1.86,2.102],[0.428,-0.174],[2.415,-1.377],[0.356,0.394],[2.443,0.264],[2.467,-0.248],[2.415,-2.151],[1.475,-0.573],[2.594,-2.311],[3.514,-1.034],[0.003,-0.216],[1.408,-1.343],[-0.473,-0.631],[0.644,-1.071],[0.476,-1.403]],"o":[[-0.124,-1.24],[2.758,-4.214],[1.832,-1.662],[0.942,-0.401],[0.092,-0.113],[3.74,0.75],[1.395,-1.453],[1.692,-0.403],[10.776,-5.404],[5.67,1.205],[2.928,1.074],[1.956,0.426],[6.456,3.958],[0.841,0.575],[0.691,0.488],[0.512,-0.783],[-1.977,-1.132],[2.086,0.2],[2.534,1.866],[1.229,0.884],[3.94,3.076],[2.503,2.202],[2.623,3.276],[4.784,4.189],[1.861,1.888],[0.731,-0.048],[2.86,3.693],[1.89,1.836],[1.059,0.999],[0.547,0.083],[1.156,3.651],[0.47,1.711],[-1.324,2.351],[0.032,0.473],[1.472,-0.731],[-0.187,1.151],[2.576,0.625],[2.898,2.141],[2.142,3.936],[-0.04,3.292],[0.07,0.482],[-1.07,-0.919],[0.569,-4.794],[-0.103,-0.516],[-2.498,-1.431],[-1.297,-1.725],[-1.317,-0.131],[0.027,-0.529],[-1.571,0.187],[-0.988,0.02],[0.549,-0.617],[-0.739,-0.901],[-1.25,0.132],[-0.225,-1.658],[0.691,-0.384],[0.009,-1.054],[-1.773,-0.555],[-1.136,1.208],[0.012,-1.115],[-0.593,0.323],[-0.509,-0.688],[2.019,-2.071],[0.875,-0.414],[-2.062,-3.532],[-2.167,-2.352],[-1.83,-1.2],[-0.268,-0.147],[-2.372,1.289],[-1.931,-2.451],[-0.201,-0.305],[-2.039,2.006],[-2.097,-2.165],[-0.484,-0.501],[-1.023,0.036],[-0.686,-1.38],[-0.222,-0.303],[-0.45,0.644],[0.591,0.717],[-1.955,-2.803],[-0.324,-0.455],[-0.598,0.172],[-1.444,-3.979],[-2.255,-0.922],[-1.416,-1.19],[-1.858,-0.856],[-0.849,-1.001],[-0.639,0.717],[-3.981,-3.235],[-1.959,0.527],[-2.188,-1.703],[-1.892,-0.771],[-1.202,-0.771],[-3.087,-0.685],[-0.268,-0.303],[-2.419,0.978],[-0.482,0.275],[-1.859,-2.054],[-2.448,-0.265],[-3.029,0.305],[-1.128,1.004],[-3.512,1.365],[-2.46,2.192],[-0.353,0.104],[-0.031,2.485],[-0.404,0.386],[0.983,1.312],[-0.758,1.259],[-0.483,1.424]],"v":[[-113.419,-33.635],[-112.391,-36.913],[-103.081,-48.738],[-97.744,-53.916],[-98.732,-56.661],[-98.457,-56.985],[-90.944,-61.262],[-86.114,-64.406],[-82.47,-67.534],[-48.626,-72.297],[-32.878,-66.283],[-23.745,-64.018],[-18.347,-61.756],[1.085,-49.989],[3.53,-48.151],[5.621,-48.185],[4.702,-49.841],[1.412,-54.981],[5.822,-51.988],[13.794,-47.077],[17.087,-44.096],[29.818,-36.4],[37.625,-30.095],[47.257,-22.173],[61.172,-9.163],[68.41,-5.392],[70.059,-4.158],[80.204,5.248],[85.698,10.901],[88.973,13.785],[89.831,14.805],[93.259,25.77],[91.618,30.282],[92.701,35.823],[93.649,35.847],[96.147,37.606],[97.298,38.951],[104.277,42.334],[110.795,50.808],[113.18,63.413],[113.474,73.304],[113.035,74.843],[112.308,71.532],[110.785,57.536],[110.043,56.108],[104.775,49.951],[100.206,48.279],[96.792,46.335],[94.43,45.113],[90.098,44.257],[89.323,42.288],[90.319,40.249],[87.383,38.176],[84.548,36.993],[86.842,33.257],[88.435,31.846],[86.717,30.137],[81.493,30.609],[79.446,29.639],[78.228,28.806],[76.587,28.746],[76.365,26.559],[80.543,19.267],[80.284,16.952],[73.285,6.916],[66.757,-0.228],[61.363,-4.51],[60.621,-5.003],[57.522,-6.971],[52.345,-14.667],[51.533,-15.156],[48.262,-16.4],[42.081,-23],[40.108,-23.679],[37.908,-24.97],[34.228,-27.234],[33.263,-26.835],[33.537,-25.163],[34.868,-22.426],[27.051,-26.222],[25.486,-26.211],[24.163,-26.847],[15.991,-34.869],[10.04,-38.929],[5.506,-41.454],[0.399,-45.108],[-2.924,-45.938],[-4.838,-46.012],[-17.925,-48.028],[-22.597,-49.458],[-29.551,-54.137],[-35.04,-58.203],[-38.813,-60.016],[-45.177,-65.438],[-45.906,-66.465],[-52.935,-66.806],[-54.514,-66.939],[-61.393,-69.577],[-68.836,-69.407],[-77.131,-66.157],[-81.547,-64.643],[-89.678,-58.135],[-96.988,-51.477],[-97.913,-50.854],[-101.546,-46.313],[-102.049,-44.974],[-102.467,-41.507],[-104.29,-37.542]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[506.552,149.745],"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":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.306,-0.049],[-1.34,-0.603],[0.502,-0.646],[-0.04,-0.074],[0.951,-0.994],[0.264,-0.978],[12.377,24.808],[1.258,3.454],[1.763,7.486],[-0.298,5.434],[-2.231,6.608],[-3.029,3.164],[0.778,1.893],[-0.027,1.005],[0.905,2.584],[-0.546,1.822],[0.694,1.376],[-0.476,3.007],[-1.262,3.737],[0.655,1.441],[-1.953,3.723],[0.615,2.334],[-1.601,4.464],[-1.181,0.788],[-0.913,-4.074],[0.383,-1.321],[-0.671,-1.709],[2.083,-2.977],[0.749,-2.621],[0.617,-4.431],[-1.052,-2.495],[1.088,-1.464],[-0.142,-0.251],[-0.405,-3.568],[-1.019,-0.485],[-0.755,0.449],[-3.132,-5.676],[-0.41,-2.066],[0.508,-1.065],[-1.726,-0.752],[0.032,-0.502],[-1.168,-1.434],[0.63,0.16],[-0.143,1.012],[1.108,0.848],[0.818,1.77],[1.192,1.205],[1.664,-1.769],[1.889,-3.271],[-1.092,0.07],[-0.331,-1.539],[0.022,0.349],[-1.594,2.203],[-0.71,-0.302],[-1.182,0.497],[0.328,-0.872],[-0.638,-1.404],[-0.339,-2.204],[-0.782,0.029],[-1.226,-0.6],[2.094,-0.817],[1.044,-1.473],[-0.59,-0.989],[-1.18,0.304],[-0.917,-1.137],[-0.998,0.589],[0.276,0.883],[-0.249,0.779],[-0.738,-0.285],[-0.321,0.89],[1.99,1.811],[-0.315,0.242],[-1.015,-0.414],[0.258,-0.418],[-0.873,-1.056],[-0.317,-1.375],[-0.772,-3.105],[-0.097,-0.06],[0.187,-1.72],[-0.313,-0.136],[0.029,-1.834],[0.591,-1.235],[0.203,-0.672],[-0.564,-0.717],[-1.292,-1.454],[2.402,-2.437],[0.238,-0.163],[-0.473,-1.218],[-0.884,-0.021],[-0.24,-0.734],[0.403,-0.347],[0.637,-0.141],[0.439,0.013],[-0.002,-0.051]],"o":[[0.021,0.981],[1.138,0.512],[-0.278,0.358],[1.164,2.195],[-0.615,0.643],[-1.087,4.019],[-1.233,-3.461],[-2.64,-7.246],[-1.24,-5.265],[0.379,-6.909],[1.356,-4.019],[1.01,-1.054],[-0.321,-0.782],[0.07,-2.572],[-0.546,-1.559],[0.41,-1.37],[-1.529,-3.031],[0.608,-3.845],[0.515,-1.526],[-1.785,-3.928],[1.145,-2.182],[-1.186,-4.501],[0.455,-1.269],[-0.712,4.023],[0.296,1.319],[-0.571,1.972],[1.465,3.733],[-1.869,2.671],[-1.232,4.32],[2.09,2.247],[0.628,1.491],[-0.204,0.275],[1.954,3.458],[0.103,0.903],[0.783,0.372],[5.655,-3.365],[1.033,1.872],[0.228,1.145],[-0.482,1.011],[0.65,0.283],[-0.086,1.358],[0.28,0.344],[-0.755,-0.191],[0.315,-2.236],[-1.723,-1.317],[-0.767,-1.659],[-1.412,-1.428],[-2.596,2.76],[-0.308,0.534],[2.901,-0.185],[0.844,0.065],[-0.209,-3.318],[0.539,-0.745],[1.196,0.508],[0.764,-0.322],[-0.684,1.817],[0.908,1.998],[0.127,0.825],[1.58,-0.058],[1.126,0.552],[-1.549,0.604],[-0.619,0.873],[0.584,0.979],[1.285,-0.33],[0.725,0.899],[1.186,-0.7],[-0.18,-0.577],[0.784,-0.263],[0.867,0.336],[0.453,-1.256],[-0.581,-0.529],[0.82,-0.632],[0.651,0.266],[-0.872,1.415],[0.884,1.069],[0.708,3.065],[0.054,0.216],[2.198,1.373],[-0.029,0.266],[2.973,1.299],[-0.022,1.386],[-0.458,0.957],[0.215,0.932],[-0.403,0.51],[2.63,2.957],[-0.215,0.217],[-0.588,0.402],[0.401,1.035],[0.637,0.015],[0.181,0.555],[-0.639,0.552],[-0.05,-0.306],[-0.053,-0.002],[0.017,0.439]],"v":[[23.716,77.612],[24.801,80.145],[24.616,82.242],[23.585,83.096],[21.684,86.522],[20.265,88.911],[-14.153,69.879],[-18.194,59.637],[-25.126,37.611],[-26.319,21.401],[-22.945,0.999],[-16.952,-10.077],[-15.674,-14.226],[-15.17,-17.191],[-15.603,-24.905],[-15.933,-29.986],[-16.239,-34.384],[-17.473,-43.861],[-15.364,-55.426],[-15.586,-59.759],[-15.139,-71.359],[-14.344,-77.934],[-14.051,-91.397],[-11.976,-94.686],[-12.132,-82.588],[-12.4,-78.402],[-11.857,-72.898],[-11.973,-61.952],[-14.314,-54.007],[-16.447,-40.76],[-14.636,-32.975],[-14.807,-28.522],[-15.016,-27.434],[-14.155,-16.689],[-13.547,-14.111],[-11.227,-14.926],[5.936,-9.952],[8.195,-4.26],[7.947,-1.08],[8.461,1.811],[8.504,3.243],[8.419,7.368],[7.996,8.636],[5.854,7.43],[3.3,3.202],[-0.384,-1.494],[-3.546,-5.526],[-9.183,-4.721],[-15.823,4.389],[-15.724,6.017],[-13.019,9.548],[-12.08,8.621],[-7.864,1.639],[-5.552,0.777],[-2.204,0.808],[1.227,4.519],[2.078,9.267],[4.355,15.379],[5.896,16.56],[9.469,18.525],[7.423,21.811],[3.413,24.486],[2.913,26.957],[5.471,28.125],[8.939,28.912],[11.388,29.383],[11.768,26.908],[11.156,25.159],[13.375,25.48],[15.853,26.332],[16.68,22.085],[17.14,21.038],[19.931,20.199],[20.55,22.077],[21.2,25.345],[21.575,29.233],[23.039,38.647],[23.028,39.322],[23.794,44.313],[23.643,45.108],[24.607,50.323],[23.604,53.979],[22.107,54.939],[23.866,56.818],[23.331,58.634],[23.792,72.359],[23.256,73.112],[22.058,74.699],[24.211,75.749],[25.778,76.526],[25.357,78.049],[23.683,77.646],[23.197,76.977],[23.043,77.13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[302.294,334.794],"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":"Group 16","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.443,-2.405],[-0.442,1.238],[-2.081,4.361],[-1.352,1.964],[-2.256,3.652],[-0.989,1.169],[-2.391,3.248],[-2.528,4.894],[0.919,5.159],[-0.005,0.315],[-3.05,0.158],[-2.36,0.17],[-4.999,0.236],[-11.461,0.232],[-6.358,0.135],[-2.251,1.185],[-2.12,-0.542],[-1.401,-0.631],[-0.458,0.311],[-2.063,-1.803],[-0.536,1.417],[-0.389,-0.745],[-2.234,-0.498],[-5.185,-0.087],[-5.427,0.705],[-4.33,-0.526],[-4.26,-0.261],[-11.502,-0.749],[-4.69,-0.221],[-5.339,-0.387],[0.916,2.039],[4.275,7.791],[3.23,3.441],[6.174,6.364],[6.358,3.853],[3.936,2.017],[5.208,1.629],[8.792,0.804],[1.159,0.109],[1.72,0.268],[4.808,1.035],[0.232,-0.046],[2.941,0.352],[2.084,-0.058],[2.574,-0.587],[2.056,0.01],[4.274,-0.825],[2.73,-0.269],[-0.307,-0.735],[-3.692,-1.214],[-2.194,-0.804],[3.111,4.282],[1.469,0.516],[0.288,-0.836],[3.544,-0.21],[0.056,-0.228],[0.477,-1.153],[-0.224,-1.584],[0.821,-0.4],[0.336,0.64],[0.924,-0.03],[0.069,-0.703],[0.816,-0.168],[0.357,0.479],[2.187,-1.815],[-0.037,-0.13],[1.18,-1.039],[1.658,-1.268],[2.435,-2.005],[1.376,-2.094],[0.671,-2.415],[2.835,-3.421],[1.319,-1.176],[0.573,-1.965],[1.712,-2.062],[-0.209,-0.382],[-0.519,-1.728],[0.775,-0.551],[1.741,-2.52],[2.815,-4.121],[5.678,-9.106],[-0.298,-6.951]],"o":[[0.985,-0.88],[1.629,-4.563],[1.069,-2.238],[2.446,-3.553],[0.91,-1.474],[2.643,-3.123],[3.212,-4.364],[2.181,-4.22],[-0.054,-0.306],[0.047,-3.012],[2.357,-0.121],[5.024,-0.361],[11.448,-0.54],[6.354,-0.128],[2.45,-0.052],[2.041,-1.073],[1.44,0.368],[0.446,0.202],[2.223,-1.51],[0.751,0.656],[0.507,-1.339],[1.492,2.849],[5.011,1.115],[5.335,0.09],[4.253,-0.553],[4.296,0.522],[11.471,0.703],[4.677,0.304],[5.344,0.252],[1.514,0.11],[-3.622,-8.067],[-2.272,-4.14],[-6.069,-6.464],[-5.241,-5.402],[-3.889,-2.357],[-4.969,-2.545],[-8.318,-2.602],[-1.137,-0.104],[-1.864,-0.174],[-4.852,-0.754],[-0.209,-0.045],[-2.892,0.574],[-2.133,-0.256],[-2.571,0.071],[-2.285,0.521],[-4.721,-0.022],[-2.602,0.502],[-1.206,0.119],[1.375,3.294],[2.219,0.729],[-5.161,-0.073],[-1.471,-2.024],[-0.582,-0.204],[-0.492,1.428],[-0.084,0.005],[-0.303,1.224],[-0.586,1.418],[0.09,0.64],[-1.04,0.507],[-0.472,-0.898],[-0.817,0.025],[-0.057,0.581],[-0.765,0.157],[-1.655,-2.216],[-0.175,0.145],[0.553,1.968],[1.821,0.822],[-2.363,1.807],[-1.802,1.484],[-1.352,2.058],[-1.251,4.502],[-1.064,1.283],[-1.586,1.413],[-0.847,2.903],[-0.239,0.288],[0.944,1.73],[0.259,0.86],[-2.645,1.882],[-2.809,4.067],[-6.055,8.865],[-3.368,5.403],[0.103,2.403]],"v":[[-161.677,-28.825],[-159.171,-31.591],[-153.273,-44.834],[-149.617,-51.308],[-142.566,-62.157],[-139.591,-66.486],[-132.833,-76.525],[-123.69,-90.057],[-119.49,-103.288],[-119.493,-104.233],[-115.397,-108.395],[-108.322,-108.71],[-93.307,-110.167],[-59.082,-112.954],[-40.03,-113.719],[-32.629,-114.543],[-26.573,-115.19],[-22.182,-114.358],[-20.857,-114.474],[-12.348,-113.894],[-10.461,-114.111],[-8.521,-114.226],[-1.729,-111.368],[13.556,-109.011],[29.566,-108.468],[42.535,-108.338],[55.27,-106.107],[89.749,-105.667],[103.801,-104.763],[119.812,-103.571],[121.381,-105.666],[110.611,-129.914],[102.806,-141.608],[84.329,-160.745],[66.382,-173.941],[53.783,-179.02],[38.447,-184.795],[13.128,-191.251],[9.699,-191.692],[4.217,-191.671],[-10.37,-192.639],[-11.06,-192.495],[-19.814,-191.682],[-25.776,-190.653],[-33.544,-189.987],[-40.189,-188.089],[-52.309,-183.732],[-59.962,-181.147],[-60.776,-179.811],[-53.966,-172.355],[-47.378,-169.956],[-60.441,-175.566],[-64.971,-176.477],[-65.448,-174.017],[-67.152,-169.789],[-67.367,-169.146],[-68.742,-165.667],[-69.76,-161.153],[-69.66,-159.318],[-71.173,-160.652],[-73.341,-161.77],[-74.421,-160.5],[-74.974,-158.883],[-76.212,-160.108],[-86.048,-161.152],[-86.464,-160.621],[-88.906,-157.179],[-88.4,-154.309],[-93.953,-147.415],[-99.083,-142.11],[-103.323,-136.085],[-110.318,-124.691],[-113.341,-120.667],[-117.109,-115.429],[-121.923,-108.946],[-122.523,-108.067],[-122.134,-102.762],[-122.776,-100.721],[-127.927,-93.085],[-135.819,-80.427],[-153.68,-53.628],[-160.79,-35.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.024,-0.522],[-0.238,-5.18],[-0.35,-5.264],[1.223,0.17],[0.511,-1.537],[1.904,0.667],[-3.921,-0.864],[0.017,1.637],[0.178,6.69],[0.266,0.726],[0.988,-1.331],[1.558,-1.688],[0.229,-1.28],[0.982,-0.416],[1.465,-2.245],[0.806,-0.454],[0.108,-1.681],[1.039,-1.407],[3.414,-1.04],[-0.079,-0.834],[0.461,-0.475],[1.012,-1.702],[1.313,-1.949],[0.086,-2.712],[0.493,0.075],[0.959,-0.228],[0.978,1.111],[0.37,-0.587],[0.859,1.81],[0.561,-1],[-0.143,-1.233],[-0.075,0.623],[0.574,-0.608],[1.467,-0.457],[-0.138,0.31],[1.162,0.03],[1.14,-0.295],[0.691,-0.039],[0.271,1.064],[-0.569,0.4],[-0.812,0.607],[0.269,0.377],[0.232,-0.047],[1.047,-1.911],[1.011,0.234],[-0.237,0.748],[0.536,0.039],[0.29,-0.534],[1.219,1.768],[1.006,-0.29],[0.307,-0.795],[1.635,1.101],[1.344,0.767],[0.338,-1.212],[1.179,-0.141],[1.114,-1.764],[0.372,0.386],[1.312,1.104],[0.757,-0.159],[0.025,-0.75],[1.527,0.443],[1.855,0.627],[0.796,-1.062],[0.466,0.221],[1.268,-1.216],[0.912,-0.059],[1.451,0.209],[-0.079,2.697],[1.328,-0.501],[2.128,2.429],[0.222,0.076],[0.786,-1.005],[-0.782,-0.86],[0.816,-0.45],[-0.284,-0.945],[0.845,-0.141],[0.33,0.715],[1.097,-0.697],[-1.144,-1.654],[0.025,-0.226],[0.259,0.592],[0.652,0.101],[0.261,-0.413],[0.911,-0.234],[0.695,-0.476],[0.012,0.041],[0.932,1.287],[-2.218,0.75],[0.914,0.714],[0.967,-0.802],[-0.649,-1.249],[12.249,-0.014],[-0.018,1.678],[0.946,-0.055],[0.147,2.177],[0.333,0.181],[0.294,-0.249],[1.005,0.404],[-0.016,0.576],[0.774,0.159],[0.194,1.429],[1.447,-0.002],[-0.638,0.427],[-0.172,0.899],[0.424,0.225],[0.155,-0.514],[0.494,0.287],[-0.022,0.258],[1.875,1.606],[-0.151,3.958],[2.645,2.674],[0.642,3.086],[1.279,0.485],[-1.742,2.805],[0.23,0.427],[-0.735,3.238],[0.276,0.359],[-1.621,1.381],[0.148,0.205],[-1.064,1.528],[0.825,0.397],[-0.876,1.866],[0.159,1.349],[0.258,-0.259],[-0.354,-0.459],[0.761,-0.256],[0.303,0.505],[0.137,1.005],[-0.651,-0.18],[-0.888,-0.272],[3.817,0.175],[0.794,0.947],[0.25,0.812],[-0.474,0.234],[0.638,2.77],[0.095,-0.589],[-0.672,-1.694],[0.878,-0.194],[-22.541,-16.657],[-0.616,0.644],[1.165,2.195],[-0.278,0.358],[1.138,0.513],[0.02,0.98],[0,0],[-0.639,0.551],[0.181,0.555],[0.637,0.015],[0.402,1.035],[-0.588,0.403],[-0.214,0.218],[2.63,2.957],[-0.402,0.51],[0.216,0.932],[-0.458,0.956],[-0.022,1.387],[2.973,1.298],[-0.029,0.265],[2.198,1.372],[0.054,0.217],[0.708,3.065],[0.884,1.07],[-0.872,1.414],[0.651,0.265],[0.82,-0.631],[-0.58,-0.528],[0.453,-1.257],[0.867,0.335],[0.783,-0.263],[-0.18,-0.577],[1.186,-0.7],[0.725,0.898],[1.285,-0.331],[0.583,0.979],[-0.618,0.872],[-1.549,0.604],[1.127,0.551],[1.58,-0.058],[0.127,0.824],[0.909,1.998],[-0.684,1.817],[0.765,-0.321],[1.197,0.509],[0.539,-0.745],[-0.208,-3.318],[0.845,0.065],[2.901,-0.186],[-0.308,0.534],[-2.596,2.761],[-1.412,-1.428],[-0.767,-1.659],[-1.723,-1.317],[0.315,-2.235],[-0.756,-0.191],[0.28,0.344],[-0.086,1.358],[0.65,0.283],[-0.483,1.01],[0.227,1.145],[1.033,1.871],[5.656,-3.365],[0.784,0.373],[0.103,0.903],[1.954,3.458],[-0.205,0.275],[0.629,1.491],[2.09,2.247],[-1.233,4.32],[-1.869,2.671],[1.465,3.733],[-0.571,1.972],[0.295,1.318],[-0.712,4.023],[-0.195,0.423],[0.192,0.489],[-2.49,3.407],[-0.205,3.849],[-6.011,3.59],[-0.734,1.323],[-2.336,2.824],[-1.609,1.022],[-0.609,1.106],[-4.289,1.631],[-0.228,2.301],[-0.661,3.117],[-3.671,2.933],[-3.389,2.144],[-2.226,0.954],[-0.522,0.966],[-4.191,2.177],[-0.035,0.842],[-1.964,1.384],[0.975,3.041],[0.022,0.074],[-0.54,0.031],[-2.172,0.128],[0.212,1.243],[-0.728,0.134],[0.253,0.898],[-0.105,0.113],[-1.303,1.014],[-0.29,0.051],[-0.483,1.424],[-0.757,1.259],[0.984,1.312],[-0.405,0.385],[-0.031,2.484],[-0.352,0.104],[-2.46,2.193],[-3.512,1.365],[-1.129,1.005],[-3.029,0.304],[-2.449,-0.265],[-1.858,-2.053],[-0.481,0.274],[-2.418,0.979],[-0.269,-0.303],[-3.086,-0.684],[-1.202,-0.772],[-1.892,-0.77],[-2.187,-1.703],[-1.96,0.527],[-3.981,-3.234],[-0.64,0.718],[-0.85,-1.002],[-1.857,-0.857],[-1.416,-1.19],[-2.255,-0.921],[-1.444,-3.978],[-0.598,0.171],[-0.324,-0.455],[-1.955,-2.803],[0.592,0.718],[-0.449,0.644],[-0.221,-0.303],[-0.686,-1.38],[-1.022,0.036],[-0.484,-0.502],[-2.097,-2.165],[-2.04,2.007],[-0.201,-0.306],[-1.931,-2.451],[-2.372,1.289],[-0.269,-0.146],[-1.831,-1.2],[-2.166,-2.353],[-2.063,-3.532],[0.874,-0.414],[2.018,-2.07],[-0.509,-0.688],[-0.593,0.323],[0.011,-1.116],[-1.135,1.207],[-1.772,-0.554],[0.008,-1.053],[0.691,-0.383],[-0.226,-1.657],[-1.249,0.133],[-0.738,-0.901],[0.549,-0.617],[-0.989,0.019],[-1.571,0.186],[0.027,-0.529],[-1.316,-0.131],[-1.297,-1.725],[-2.498,-1.43],[-0.104,-0.516],[0.57,-4.794],[-1.067,-0.918],[-5.943,-1.42],[-4.91,-1.13],[-0.213,-1.46],[0.962,-6.637],[1.984,-5.85],[2.335,-4.931],[3.47,-6.261],[6.62,-1.656],[0.886,-0.308],[6.651,-0.158],[9.968,1.855],[4.599,2.116],[3.518,6.446],[2.479,5.987],[3.68,5.14],[2.281,2.019],[-0.098,0.048],[0.088,1.222],[-1.826,-1.704],[0.758,3.671],[0.925,0.139],[0.925,2.754],[0.258,0.156],[1.073,2.108],[0.152,-0.122],[0.851,0.43],[-0.491,-1.578],[0.65,-2.532],[0.366,-2.236],[0.486,-3.91],[1.988,-3.165],[1.013,-2.872],[0.859,-2.017],[1.513,-1.27],[2.427,-2.287],[2.179,-4.354],[0.204,-2.281],[-2.307,-3.801],[-0.509,0.36],[-0.275,-0.464],[-4.203,0.977],[-0.072,-0.03],[-0.963,1.292],[-1.443,1.19],[-2.981,-0.408],[0.022,-1.929],[-0.568,0.003],[-1.51,0.928],[-1.601,0.399],[0.003,-0.319],[-2.617,-0.596],[2.702,-1.464],[-0.005,-0.333],[-0.554,-2.221],[1.488,0.671],[0.348,-0.59],[-0.521,-0.405],[-0.51,-0.566],[0.267,-1.302],[0.526,0.303],[0.089,1.301],[1.532,1.87],[-0.236,1.059],[1.809,1.251],[1.262,0.883],[0.009,-0.359],[1.095,-0.73],[-0.683,-1.744],[2.585,-1.621],[-0.098,-1.052],[0.745,-0.237],[0.565,0.643],[1.491,0.987],[0.238,-1.758],[1.339,-0.234],[3.842,-1.774],[1.326,0.667],[0.377,-0.419],[3.197,1.5],[0.478,-0.626],[0.906,0.167],[0.565,-0.738],[1.471,0.848],[0.227,-0.541],[-0.045,-1.348],[2.029,-0.248],[2.659,-0.396],[-0.273,0.12],[0.424,0.7],[0.541,-0.114],[0.714,-0.567],[0.432,0.35],[-0.532,0.808],[-3.013,2.694],[1.369,2.241],[1.332,0.237],[0.604,-0.825],[0.871,-0.566],[0.676,-0.196],[1.875,-2.326],[1.191,-1.15],[0.827,0.697],[-0.285,0.768],[-0.064,1.367],[0.571,2.866],[-0.21,0.222],[-1.862,1.148],[-0.201,2.296],[-0.515,2.274],[-0.265,0.135],[-1.551,-0.187],[-1.921,0.654],[0.135,0.969],[0.665,0.123],[0.51,1.092],[-0.569,-0.234],[-1.722,2.554],[-1.594,0.149],[-0.054,0.971],[-2.234,-0.02],[0.14,0.279],[1.108,1.108],[1.248,1.071],[-0.915,1.635],[0.824,0.997],[-1.968,3.736],[0.324,0.798],[-2.554,2.125],[1.615,-0.299],[10.055,-0.125],[4.127,0.193],[8.634,2.255],[3.795,9.612],[1.879,6.445],[0.706,0.152],[0.194,-0.193],[-0.261,-0.619],[0.035,-1.008],[0.091,-0.984],[0.895,-0.744],[0.272,0.506],[0.604,-0.171],[-0.144,-0.582],[1.079,0.522],[0.234,-1.785],[1.572,0.321],[1.049,0.293],[-0.566,-0.7],[-0.146,-1.256],[1.388,0.176],[0.309,-0.205],[1.013,-0.373],[0.674,-1.601],[1.125,-1.146],[-0.026,-3.095],[-1.661,-1.638],[0.116,-0.246],[-0.102,-2.809],[1.382,-1.322],[-1.473,-2.004],[0.609,-1.499],[-0.606,-0.482],[-0.051,-2.054],[-0.681,-1.173],[0.088,-1.622],[0.089,-0.139],[0.946,-0.1],[-2.035,0.016],[-0.367,-0.66],[0.611,-0.297],[0.008,-0.482],[-0.444,-0.057],[0.045,0.464],[-0.86,-0.167],[-0.139,-0.613],[-0.766,-0.935],[-0.871,-1.046],[2.676,-1.598],[-1.424,-0.457],[-1.011,0.062],[-0.227,-0.573],[-0.932,-0.931],[-1.14,0.112],[-0.168,-0.674],[0.578,-0.569],[0.871,-0.269],[2.498,0.073],[0.249,-1.15],[-1.012,-0.138],[0.122,-1.481],[-1.149,-0.312],[-2.902,1.654],[0.037,-1.818],[-0.605,-2.241],[0.334,-0.582],[-1.397,-0.708],[2.151,-1.846],[1.396,-1.062],[0.413,-0.291],[-0.313,-1.203],[-1.174,0.076],[1.101,-0.233],[-0.548,-0.132],[-1.052,-1.409],[-1.162,1.031],[-0.286,-0.007],[-0.289,-1.522],[-0.622,-0.243],[-0.269,0.516],[1.862,1.713],[-0.582,0.816],[-0.109,-0.77],[0.251,-2.609],[-1.9,-1.332],[0.02,0],[1.524,-0.63],[-0.275,-1.363],[-0.761,-0.635],[0.658,-1.193],[-1.006,0.293],[-2.192,-0.478],[0.228,1.354],[-0.724,0.03],[-1.35,1.071],[-0.384,-0.433],[0.336,-0.3],[0.21,-0.233],[-0.597,-0.577],[-0.399,0.612],[-0.169,0.127],[0.775,-1.334],[-1.128,-0.171],[0.985,-0.679],[-1.202,-1.518],[-1.156,-2.447],[-0.929,0.893],[-1.751,0.778],[-0.441,-0.604],[0.496,-0.276],[1.034,-0.683],[-0.221,-0.281],[-0.329,0.1],[0.195,1.669],[-2.215,-0.926],[-0.456,0.899],[-1.434,0.556],[1.378,1.619],[-0.696,0.035],[-1.012,1.046],[-1.351,-0.797],[0.061,0.604],[0.065,0.7],[-0.57,0.143],[-0.256,-0.371],[-0.76,-1],[-1.856,0.963],[-1.885,-0.26],[-0.107,1.367],[-0.161,0.52],[-0.784,-0.133],[-0.487,0.719],[-0.674,-0.158],[0.298,1.159],[-1.212,-0.179],[-0.193,1.59],[-4.236,1.974],[0.597,2.333],[-0.516,0.363],[0.725,1.508],[-0.982,-0.113],[-1.009,0.508],[0.061,-1.94],[-1.076,0.934],[-0.537,-0.475],[0.243,-0.464],[3.933,-1.765],[1.463,-1.013],[-0.152,-0.893],[-0.736,-0.109],[0.017,-1.236],[0.539,0.059],[0.228,-1.075],[-0.569,-0.182],[0.292,-1.549],[-0.052,-0.782],[-0.975,0.953],[-2.09,-1.44],[0.387,-1.741],[-0.269,-0.299],[-1.473,-2.964],[1.44,-0.109],[0.143,-0.877],[-0.586,-0.141],[0.172,-0.508],[-1.311,-0.284],[-0.478,1.067],[-2.929,1.456],[-0.615,-3.31],[-1.064,-0.225],[0.017,-0.677],[0.666,-0.013],[0.08,-1.053],[-1.03,-2.104],[-0.237,0.105],[-2.046,2.121],[-0.442,1.265],[0.404,0.397],[-0.218,0.242],[0.538,1.14],[-1.4,0.969],[-0.28,-0.743],[-0.702,0.923],[-0.492,0.132],[0.438,3.415],[-1.228,0.09],[-0.943,0.265],[-3.363,0.751],[0.461,1.755],[-2.501,0.828],[-0.021,0.213],[-2.547,1.079],[-0.287,1.034],[-1.075,-0.059],[0.09,-0.734],[-0.303,-0.26],[-0.28,0.336],[-0.275,1.866],[-0.352,-0.687],[1.043,-1.231],[-0.689,-0.348],[-1.68,-1.311],[-0.634,0.419],[-0.916,-1.554],[-0.924,0.097],[-0.332,0.585],[-0.446,0.039],[0.024,-0.509],[-0.192,-3.252],[0.568,0.487],[0.784,-0.481],[1.069,-3.815],[-2.259,0.993],[-0.381,-0.431],[-1.09,-0.911],[-2.088,0.61],[-2.402,1.263],[-0.703,-0.263],[-2.644,-0.262],[-0.167,2.819],[-1.316,0.026],[0.356,-2.083],[-0.622,-0.141],[-0.75,-0.629],[-0.482,0.435],[0.323,0.327],[-0.436,1.325],[-0.892,-0.234],[0.536,-0.989],[-0.807,-0.255],[-0.552,-0.684],[-0.686,0.911],[1.03,0.407],[-1.156,0.996],[0.325,0.341],[1.994,0.916],[-0.137,0.092],[0.42,1.327],[-0.195,0.98],[2.177,0.791],[-0.073,0.319],[0.992,1.171],[0.57,0.842],[2.725,0.784],[2.92,0.244],[0.438,0.46],[1.648,1.522],[4.86,0.589],[1.943,0.242],[10.107,-0.942],[0.615,-1.536],[1.063,1.182],[0.535,-0.807],[1.253,-0.506],[2.216,0.093],[3.27,-0.766],[3.311,-0.656],[3.142,0.254],[-0.199,0.342],[-1.329,2.029],[-1.338,0.778],[-0.455,-0.711],[-0.433,1.404],[-1.016,-0.191],[-2.084,0.295],[-1.27,0.298],[-2.131,2.045],[-1.026,-0.57],[-2.187,0.92],[-5.243,0.404],[-2.54,-0.315],[-3.355,-1.391],[-3.378,-1.2],[-1.306,-0.886],[-3.562,-1.613],[-2.105,0.474],[-1.379,-2.109],[-2.085,2.353],[-0.551,-0.738],[-1.663,-2.939],[-1.296,1.702],[-0.244,0.605],[-1.31,0.021],[-0.058,-0.923],[-0.239,-3.713],[1.232,-0.455],[-1.359,-0.85],[0.665,-0.942],[-1.089,-1.822],[0.181,-3.003],[-1.317,-1.246],[1.099,-1.563],[-0.864,-0.057],[-0.35,-0.825],[-1.011,-0.852],[1.267,-3.593],[-0.086,-0.208],[-2.537,-3.148],[-1.11,-0.52],[0.288,-1.056],[-0.744,-1.056],[-0.734,0.314],[-0.021,0.619],[-0.848,0.624],[-0.015,-0.344],[-0.778,-2.251]],"o":[[-0.427,5.206],[0.242,5.268],[0.073,1.104],[-3.925,-0.544],[-2.012,0.369],[-7.645,5.686],[-1.506,-0.39],[-0.067,-6.691],[-0.021,-0.774],[-0.578,-1.58],[-1.358,1.831],[-0.762,0.826],[-0.206,1.149],[-2.834,1.199],[-0.476,0.73],[-1.157,0.652],[-0.096,1.493],[-1.986,2.689],[0.172,1.234],[0.093,0.987],[-1.422,1.462],[-1.219,2.052],[-1.187,1.762],[-0.014,0.415],[-0.837,-0.126],[-1.291,0.307],[-0.763,-0.868],[-0.826,1.312],[-0.511,-1.076],[-0.518,0.92],[0.062,0.532],[0.158,-1.315],[-1.636,1.735],[-0.281,0.088],[1.142,-2.561],[-1.13,-0.03],[-0.682,0.177],[-0.731,0.041],[-0.225,-0.883],[0.83,-0.584],[0.321,-0.239],[-0.15,-0.21],[-1.814,0.369],[-0.735,1.344],[-1.484,-0.344],[0.12,-0.376],[-0.621,-0.046],[-1.057,1.948],[-0.361,-0.524],[-0.903,0.26],[-0.925,2.397],[-1.263,-0.851],[-1.444,-0.823],[-0.41,1.473],[-1.927,0.23],[-0.312,0.496],[-1.266,-1.312],[-0.468,-0.394],[-0.86,0.18],[-0.041,1.217],[-1.913,-0.556],[-0.86,-0.291],[-0.279,0.373],[-2.107,-0.997],[-0.626,0.6],[1.3,-9.295],[-1.688,-0.244],[0.03,-1.012],[-1.988,0.749],[-0.144,-0.165],[-1.227,-0.422],[-0.826,1.055],[0.427,0.468],[-0.917,0.505],[0.196,0.656],[-0.685,0.115],[-0.53,-1.145],[-0.817,0.518],[0.091,0.132],[-1.094,-0.119],[-0.276,-0.632],[-0.858,-0.134],[-1.224,1.935],[-0.604,0.446],[-0.1,0],[-0.487,-1.622],[-1.183,-1.634],[-1.225,-0.846],[-0.823,-0.642],[-0.972,0.807],[0.526,1.011],[0.484,-0.576],[0.008,-0.773],[-2.029,0.119],[-0.021,-0.318],[-0.47,-0.09],[-0.485,0.411],[-0.768,-0.309],[0.028,-1.081],[-1.816,-0.373],[-0.13,-0.965],[-1.168,0.003],[0.948,-0.634],[0.098,-0.515],[-0.59,-0.314],[-0.118,0.389],[-0.201,-0.116],[0.2,-2.288],[-2.506,-2.146],[0.158,-4.159],[-2.169,-2.193],[-0.244,-1.168],[-3.186,-1.207],[0.344,-0.552],[-1.326,-2.471],[0.08,-0.356],[-0.779,-1.014],[0.146,-0.125],[-0.914,-1.262],[0.511,-0.735],[-1.703,-0.819],[0.65,-1.386],[-0.03,-0.255],[-0.343,0.343],[0.605,0.785],[-1.198,0.402],[-0.587,-0.982],[-0.111,-0.812],[0.893,0.246],[0.43,-2.406],[-0.034,-0.877],[-0.656,0.688],[-0.25,-0.812],[2.571,-1.273],[-0.127,-0.554],[-0.226,1.392],[0.27,0.68],[-0.792,0.175],[0.264,-0.978],[0.951,-0.993],[-0.039,-0.075],[0.502,-0.647],[-1.34,-0.602],[0,0],[0.637,-0.141],[0.402,-0.348],[-0.24,-0.735],[-0.885,-0.021],[-0.472,-1.218],[0.239,-0.163],[2.403,-2.436],[-1.293,-1.454],[-0.563,-0.717],[0.203,-0.672],[0.591,-1.235],[0.029,-1.833],[-0.313,-0.137],[0.188,-1.72],[-0.097,-0.061],[-0.771,-3.105],[-0.317,-1.374],[-0.873,-1.056],[0.258,-0.418],[-1.015,-0.414],[-0.315,0.243],[1.991,1.811],[-0.32,0.889],[-0.738,-0.285],[-0.25,0.779],[0.276,0.882],[-0.999,0.589],[-0.917,-1.137],[-1.18,0.303],[-0.59,-0.989],[1.045,-1.473],[2.094,-0.817],[-1.225,-0.6],[-0.782,0.029],[-0.34,-2.205],[-0.638,-1.404],[0.328,-0.872],[-1.181,0.498],[-0.71,-0.301],[-1.594,2.202],[0.022,0.349],[-0.331,-1.539],[-1.092,0.07],[1.889,-3.271],[1.664,-1.769],[1.192,1.205],[0.819,1.77],[1.109,0.847],[-0.143,1.012],[0.63,0.159],[-1.168,-1.435],[0.031,-0.502],[-1.726,-0.751],[0.508,-1.066],[-0.41,-2.065],[-3.133,-5.677],[-0.754,0.449],[-1.019,-0.484],[-0.405,-3.568],[-0.142,-0.252],[1.088,-1.463],[-1.051,-2.495],[0.617,-4.432],[0.748,-2.622],[2.083,-2.977],[-0.671,-1.71],[0.382,-1.32],[-0.913,-4.074],[0.195,-0.423],[0.415,-0.214],[1.363,-4.098],[2.192,-2.999],[0.298,-5.619],[1.325,-0.792],[1.799,-3.241],[1.218,-1.473],[1.082,-0.687],[2.343,-4.251],[2.478,-0.942],[0.318,-3.196],[0.987,-4.653],[3.13,-2.501],[2.033,-1.287],[1.01,-0.433],[2.211,-4.09],[0.674,0.451],[1.575,-1.905],[3.53,-0.401],[-0.023,-0.074],[0.539,-0.031],[-0.1,1.438],[3.053,-0.181],[0.729,-0.135],[0.776,0.301],[0.036,-0.15],[1.153,-0.079],[0.29,-0.05],[0.847,0.376],[0.476,-1.404],[0.645,-1.071],[-0.473,-0.63],[1.408,-1.344],[0.003,-0.217],[3.515,-1.035],[2.593,-2.311],[1.476,-0.574],[2.414,-2.15],[2.467,-0.249],[2.443,0.264],[0.357,0.394],[2.416,-1.378],[0.429,-0.173],[1.86,2.102],[1.389,0.308],[1.953,1.253],[2.759,1.124],[1.456,1.133],[4.626,-1.243],[0.521,0.423],[1.64,-1.841],[1.407,1.658],[1.603,0.739],[1.819,1.529],[3.836,1.568],[0.234,0.646],[0.539,-0.155],[1.964,2.758],[0.6,-1.711],[-0.451,-0.546],[0.241,-0.344],[0.948,1.296],[0.531,1.068],[0.734,-0.025],[2.093,2.168],[0.852,0.879],[0.432,-0.426],[1.698,2.581],[0.928,1.178],[0.121,-0.066],[2.064,1.126],[2.893,1.897],[2.754,2.99],[0.391,0.671],[-3.163,1.496],[-0.588,0.604],[0.521,0.704],[0.873,-0.475],[-0.017,1.559],[1.702,-1.81],[0.804,0.252],[-0.008,0.968],[-1.385,0.77],[0.209,1.544],[1.463,-0.155],[0.756,0.922],[-0.989,1.113],[1.542,-0.031],[0.903,-0.108],[-0.159,3.142],[1.694,0.169],[1.611,2.142],[0.396,0.227],[0.925,4.616],[-0.132,1.114],[5.943,1.419],[4.901,1.171],[1.544,0.356],[0.869,5.945],[-0.511,4.227],[-1.54,3.752],[-3.633,9.471],[-3.175,5.934],[-0.952,-0.232],[-6.441,2.237],[-10.161,0.242],[-4.908,-0.914],[-6.742,-3.101],[-3.084,-5.651],[-2.457,-5.932],[-1.7,-2.374],[-0.11,-0.097],[1.535,-0.75],[1.937,0.595],[-0.904,-4.38],[-0.226,-1.096],[-2.125,-0.318],[-0.056,-0.166],[-1.458,-0.881],[-0.033,-0.064],[-0.819,0.662],[-1.465,-0.74],[0.804,2.587],[-0.567,2.205],[-0.628,3.842],[-0.428,3.438],[-1.547,2.462],[-0.728,2.065],[-0.816,1.918],[-2.549,2.139],[-3.632,3.422],[-1.131,2.26],[-0.388,4.341],[0.284,0.468],[0.515,-0.364],[1.99,3.358],[0.068,-0.016],[1.99,0.805],[1.354,-1.815],[2.881,-2.375],[1.272,0.175],[-0.006,0.543],[1.38,-0.007],[1.338,-0.823],[0.394,-0.098],[-0.023,2.646],[-0.266,1.883],[-0.279,0.152],[0.037,2.339],[0.547,2.196],[-0.657,-0.297],[-0.508,0.864],[0.62,0.482],[0.879,0.975],[-0.089,0.435],[-1,-0.578],[-0.226,-3.302],[-0.75,-0.917],[0.364,-1.638],[-0.588,1.569],[-0.399,-0.279],[-0.051,2.024],[-0.992,0.662],[0.859,2.197],[-0.791,0.496],[0.049,0.532],[-0.67,0.213],[-1.217,-1.387],[-1.48,-0.98],[-0.194,1.434],[-4.377,0.765],[-1.106,0.511],[-0.544,-0.273],[-1.478,1.641],[-0.647,-0.303],[-0.517,0.676],[-0.896,-0.166],[-1.02,1.332],[-0.448,-0.258],[-0.723,1.728],[0.108,3.235],[1.031,2.206],[-0.071,-0.415],[0.769,-0.338],[-0.513,-0.846],[-1.001,0.211],[-0.827,0.657],[-1.282,-1.038],[2.279,-3.461],[1.053,-0.942],[-0.202,-0.331],[-0.712,-0.127],[-0.445,0.609],[-0.821,-0.372],[-2.73,0.793],[-1.119,1.388],[-0.676,0.653],[-0.963,-0.811],[0.415,-1.125],[0.122,-2.645],[-0.043,-0.215],[1.509,-1.597],[1.507,-0.928],[0.264,-3.022],[0.059,-0.264],[1.247,-0.634],[2.318,0.28],[0.706,-0.24],[-0.112,-0.806],[-1.312,-0.241],[0.862,-0.32],[2.318,0.954],[0.912,-1.35],[0.927,-0.087],[0.081,-1.469],[0.306,0.003],[-0.623,-1.241],[-1.195,-1.194],[-1.091,-0.935],[0.582,-1.04],[-2.92,-3.532],[0.396,-0.752],[-1.142,-2.81],[-2.2,-1.205],[-9.899,1.834],[-4.133,0.051],[-8.935,-0.416],[-9.911,-2.588],[-2.471,-6.26],[-0.148,-0.51],[-0.248,-0.054],[-0.511,0.507],[0.323,0.769],[-1.011,0.245],[-0.131,1.407],[-0.551,0.458],[-0.206,-0.385],[-0.575,0.163],[0.394,1.603],[-1.844,-0.891],[-0.186,1.415],[-0.958,-0.196],[-0.636,-0.178],[1.077,1.332],[0.194,1.674],[-0.222,-0.028],[-1.479,0.98],[-2.57,0.948],[-0.732,1.74],[-2.301,2.344],[0.013,1.687],[0.141,0.139],[-1.254,2.644],[0.059,1.608],[-1.878,1.794],[0.779,1.061],[-0.353,0.868],[2.293,1.824],[0.032,1.29],[0.754,1.3],[-0.01,0.188],[-0.905,-0.005],[-0.961,1.594],[0.632,-0.005],[0.168,0.303],[-0.654,0.319],[-0.008,0.484],[0.448,0.057],[-0.098,-1.019],[1.049,0.203],[0.294,1.297],[0.845,1.032],[0.58,0.696],[-0.123,0.073],[-0.066,1.014],[0.126,0.613],[0.52,1.311],[0.819,0.818],[0.544,-0.054],[0.288,1.156],[-0.886,0.87],[-0.993,1.619],[-0.793,-0.023],[-0.224,1.032],[1.833,0.25],[-0.039,0.474],[-1.051,-3.686],[1.661,-0.947],[-0.047,2.342],[0.195,0.726],[-0.978,1.706],[2.266,1.148],[1.974,0.415],[-0.408,0.31],[-1.331,0.939],[0.324,1.242],[-0.249,1.219],[-0.827,0.174],[2.275,0.548],[0.924,1.237],[0.183,-0.162],[2.972,0.071],[0.078,0.408],[0.662,0.259],[1.165,-2.229],[-1.495,-1.376],[0.341,-0.48],[0.358,2.518],[-0.134,1.392],[0.097,0.068],[-1.956,0.052],[-0.619,0.256],[0.176,0.873],[1.215,1.016],[1.191,0.403],[1.826,-0.53],[0.753,0.164],[-0.07,-0.417],[1.858,-0.078],[0.568,-0.45],[0.474,0.535],[-0.235,0.209],[-0.484,0.537],[0.69,0.667],[0.109,-0.167],[-0.58,1.385],[-0.541,0.931],[1.148,0.175],[-2.042,1.407],[1.706,2.155],[0.459,0.972],[1.355,-1.302],[0.765,-0.34],[0.582,0.798],[-1.13,0.625],[-0.295,0.195],[0.226,0.288],[1.571,-0.478],[-0.119,-1.024],[0.733,0.306],[0.733,-1.446],[1.07,-0.415],[-0.399,-0.468],[1.885,-0.094],[0.607,-0.627],[0.784,0.462],[-0.071,-0.7],[-0.043,-0.456],[0.627,-0.157],[0.691,1.002],[1.25,-1.612],[0.355,0.936],[1.503,0.207],[0.042,-0.543],[0.155,-0.501],[1.088,0.184],[0.391,-0.577],[1.95,0.46],[-0.318,-1.234],[2.504,0.371],[0.54,-4.463],[2.158,-1.007],[-0.282,-1.102],[1.237,-0.87],[-0.995,-2.07],[1.189,0.138],[1.257,-0.633],[-0.039,1.247],[0.424,-0.367],[0.465,0.41],[-1.798,3.432],[0.947,1.202],[-0.555,0.384],[0.18,1.058],[1.109,0.165],[-0.78,0.39],[-1.122,-0.122],[-0.26,1.224],[1.116,0.356],[-0.138,0.733],[0.099,1.52],[1.764,-1.725],[1.144,0.788],[-0.105,0.471],[1.799,1.994],[0.88,1.769],[-0.855,0.065],[-0.154,0.938],[0.419,0.1],[-0.229,0.675],[1.178,0.254],[1.626,-3.631],[1.91,-0.949],[0.152,0.822],[0.685,0.145],[-0.019,0.733],[-0.775,0.015],[1.745,-0.2],[0.08,0.163],[2.088,-0.925],[0.365,-0.378],[0.317,-0.905],[-0.183,-0.18],[1.176,-1.305],[-0.759,-1.61],[0.565,-0.391],[0.588,1.556],[0.406,-0.534],[1.779,-0.477],[-0.113,-0.884],[0.825,-0.061],[-0.295,-0.941],[-1.561,-0.89],[-0.476,-1.81],[0.14,-0.046],[0.27,-2.68],[1.04,-0.441],[0.164,-0.591],[1.108,0.062],[-0.037,0.306],[0.511,0.113],[0.873,-1.05],[0.068,-0.459],[0.462,0.904],[-0.239,0.282],[1.74,0.876],[0.27,0.211],[1.316,-0.871],[0.344,0.584],[0.878,-0.093],[0.15,-0.265],[0.66,0.215],[-0.152,3.287],[0.047,0.79],[-0.361,-0.31],[0.531,3.93],[-0.32,1.142],[0.666,-0.293],[0.962,1.088],[2.17,1.814],[0.281,2.473],[0.734,-0.385],[2.536,0.949],[2.712,0.27],[0.071,-1.197],[1.019,-0.021],[-0.129,0.754],[0.922,0.21],[0.339,0.284],[0.453,-0.41],[-1.392,-1.411],[0.391,-1.186],[0.824,0.215],[-0.854,1.574],[0.748,0.237],[0.348,0.431],[0.571,-0.758],[-0.907,-0.358],[0.347,-0.299],[-1.154,-1.214],[-0.032,-0.015],[1.681,-1.124],[-0.329,-1.043],[0.378,-1.902],[-0.341,-0.124],[0.478,-2.069],[-0.649,-0.767],[-1.527,-2.257],[-2.759,-0.794],[-0.67,-0.056],[-1.573,-1.652],[-3.503,-3.235],[-1.974,-0.239],[-10.069,-1.254],[-1.507,0.141],[-0.727,1.816],[-1.056,-1.176],[-0.912,1.375],[-1.848,0.746],[-3.393,-0.142],[-3.302,0.773],[-2.951,0.585],[-0.272,-0.421],[1.199,-2.064],[0.661,-1.009],[0.567,-0.33],[0.427,0.668],[0.41,-1.33],[2.081,0.391],[1.428,-0.202],[2.919,-0.686],[0.699,-0.671],[2.827,1.571],[5.143,-2.163],[2.717,-0.209],[3.404,0.422],[3.094,1.283],[1.639,0.582],[3.256,2.209],[1.834,0.831],[1.849,-0.416],[0.775,1.184],[0.636,-0.717],[1.866,2.502],[-0.148,-2.014],[0.413,-0.541],[0.245,-0.608],[0.894,-0.013],[0.228,3.657],[0.075,1.169],[-1.312,0.483],[1.094,0.684],[-1.182,1.676],[1.482,2.48],[-0.122,2.019],[0.921,0.873],[-0.457,0.649],[1.157,0.076],[0.477,1.126],[2.203,1.858],[-0.068,0.195],[1.479,3.619],[0.797,0.988],[1.426,0.667],[-0.499,1.834],[0.425,0.604],[0.719,-0.307],[0.022,-0.639],[4.262,-3.133],[-0.565,2.326],[0.025,0.522]],"v":[[122.947,161.008],[122.499,164.032],[120.596,165.152],[120.372,167.279],[119.252,170.975],[120.639,171.883],[121.596,175.434],[120.028,178.495],[114.145,182.074],[112.801,183.721],[110.082,187.037],[105.816,192.361],[104.9,196.096],[103.244,198.84],[98.077,205.031],[100.952,208.56],[94.475,208.708],[91.656,213.021],[84.621,212.29],[88.862,219.017],[84.738,214.834],[80.535,219.247],[73.158,226.297],[69.263,231.471],[68.562,230.669],[69.199,234.797],[66.233,233.824],[64.046,235.201],[62.056,235.286],[62.012,226.392],[60.723,229.315],[58.246,232.268],[59.299,234.372],[55.046,234.021],[54.806,233.283],[52.619,231.078],[49.202,231.897],[47.151,232.392],[45.184,231.598],[46.301,229.983],[48.799,228.245],[49.072,227.214],[48.296,226.842],[43.332,229.037],[39.287,238.653],[38.984,236.642],[38.543,235.743],[37.328,236.659],[33.747,236.868],[32.727,235.347],[30.371,237.115],[26.671,237.92],[22.559,235.837],[19.772,238.61],[17.535,240.217],[15.608,240.447],[11.63,240.318],[6.799,240.302],[5.332,239.385],[4.273,241.013],[2.633,242.017],[-2.936,240.11],[-6.073,242.044],[-7.009,242.9],[-18.062,235.772],[-22.732,236.229],[-25.319,235.761],[-28.837,232.93],[-30.848,232.136],[-30.405,223.169],[-31.03,222.845],[-34.652,222.025],[-32.767,224.748],[-32.753,225.965],[-33.475,228.198],[-34.224,229.638],[-35.711,228.812],[-38.367,226.884],[-39.362,230.671],[-39.418,231.307],[-40.557,229.689],[-41.984,228.576],[-42.867,229.652],[-45.224,229.118],[-45.578,230.814],[-45.956,230.809],[-49.113,227.474],[-48.163,224.19],[-51.29,222.012],[-53.776,221.844],[-54.589,224.67],[-74.706,210.68],[-72.846,205.018],[-75.59,204.303],[-79.543,200.833],[-79.853,200.034],[-80.835,200.561],[-82.174,201.843],[-82.246,200.143],[-83.709,198.22],[-85.982,195.114],[-94.826,197.769],[-95.125,196.34],[-93.966,193.886],[-94.673,192.754],[-95.663,193.344],[-96.466,193.874],[-96.799,193.091],[-98.549,188.109],[-104.216,179.694],[-112.613,170.171],[-115.203,170.177],[-117.479,167.723],[-119.043,163.22],[-119.229,162.012],[-122.043,154.149],[-122.609,152.91],[-128.721,149.283],[-128.746,148.403],[-128.999,144.499],[-130.367,142.619],[-131.758,138.792],[-132.609,134.868],[-133.41,134.789],[-133.677,136.048],[-134.095,137.75],[-135.204,136.424],[-135.264,133.412],[-134.255,132.625],[-131.594,133.435],[-135.147,130.728],[-134.853,128.14],[-138.577,127.723],[-137.626,126.702],[-134.602,120.324],[-135.513,119.633],[-137.04,123.279],[-137.641,125.046],[-147.91,100.682],[-146.491,98.291],[-144.591,94.867],[-143.559,94.012],[-143.374,91.914],[-144.458,89.383],[-144.492,89.416],[-142.818,89.82],[-142.397,88.297],[-143.964,87.519],[-146.117,86.469],[-144.919,84.882],[-144.384,84.129],[-144.844,70.405],[-144.31,68.588],[-146.069,66.709],[-144.57,65.75],[-143.568,62.092],[-144.531,56.879],[-144.382,56.083],[-145.147,51.092],[-145.137,50.417],[-146.6,41.002],[-146.975,37.114],[-147.625,33.847],[-148.243,31.97],[-151.035,32.807],[-151.496,33.854],[-152.323,38.102],[-154.799,37.251],[-157.018,36.929],[-156.406,38.678],[-156.786,41.153],[-159.236,40.682],[-162.703,39.895],[-165.262,38.727],[-164.763,36.256],[-160.751,33.581],[-158.707,30.295],[-162.279,28.33],[-163.82,27.149],[-166.098,21.037],[-166.948,16.289],[-170.38,12.577],[-173.728,12.547],[-176.039,13.41],[-180.255,20.391],[-181.195,21.319],[-183.898,17.788],[-183.997,16.16],[-177.358,7.048],[-171.721,6.244],[-168.56,10.276],[-164.876,14.972],[-162.32,19.199],[-160.178,20.406],[-159.755,19.138],[-159.671,15.013],[-159.714,13.58],[-160.228,10.69],[-159.979,7.509],[-162.238,1.818],[-179.402,-3.156],[-181.723,-2.342],[-182.329,-4.918],[-183.191,-15.664],[-182.982,-16.753],[-182.811,-21.205],[-184.621,-28.99],[-182.488,-42.237],[-180.147,-50.182],[-180.031,-61.128],[-180.574,-66.633],[-180.307,-70.818],[-180.152,-82.916],[-179.565,-84.185],[-179.115,-85.187],[-172.586,-96.015],[-169.169,-105.955],[-163.055,-121.355],[-160.583,-125.279],[-154.189,-134.174],[-150.072,-137.998],[-147.424,-140.658],[-136.923,-148.96],[-133.228,-153.782],[-130.97,-163.049],[-122.957,-174.156],[-113.108,-181.077],[-106.562,-184.221],[-104.391,-186.224],[-94.999,-195.86],[-93.91,-196.398],[-88.138,-200.709],[-85.431,-204.357],[-85.499,-204.58],[-83.88,-204.673],[-81.866,-202.328],[-80.628,-205.345],[-78.441,-205.75],[-77.548,-206.518],[-77.336,-206.914],[-74,-206.381],[-73.13,-206.532],[-68.208,-210.821],[-66.385,-214.787],[-65.968,-218.254],[-65.464,-219.592],[-61.831,-224.133],[-60.906,-224.756],[-53.595,-231.415],[-45.466,-237.922],[-41.048,-239.437],[-32.754,-242.686],[-25.31,-242.856],[-18.432,-240.219],[-16.853,-240.085],[-9.824,-239.745],[-9.095,-238.717],[-2.732,-233.296],[1.043,-231.482],[6.53,-227.417],[13.484,-222.737],[18.158,-221.307],[31.244,-219.292],[33.159,-219.218],[36.482,-218.387],[41.587,-214.733],[46.122,-212.209],[52.074,-208.149],[60.247,-200.127],[61.567,-199.49],[63.134,-199.501],[70.95,-195.705],[69.618,-198.443],[69.345,-200.114],[70.309,-200.514],[73.989,-198.249],[76.189,-196.959],[78.163,-196.279],[84.343,-189.679],[87.616,-188.436],[88.427,-187.946],[93.603,-180.25],[96.704,-178.282],[97.447,-177.79],[102.84,-173.508],[109.368,-166.363],[116.366,-156.327],[116.626,-154.012],[112.447,-146.721],[112.669,-144.534],[114.311,-144.473],[115.528,-143.64],[117.574,-142.67],[122.798,-143.143],[124.517,-141.434],[122.923,-140.023],[120.632,-136.287],[123.465,-135.104],[126.402,-133.03],[125.405,-130.992],[126.181,-129.022],[130.512,-128.166],[132.874,-126.945],[136.288,-125],[140.858,-123.328],[146.126,-117.172],[146.868,-115.743],[148.389,-101.747],[149.114,-98.437],[166.944,-94.179],[181.648,-90.681],[184.121,-87.902],[182.832,-73.502],[179.275,-56.116],[174.733,-41.117],[166.178,-20.28],[151.392,-8.786],[148.603,-8.571],[128.764,-6.215],[98.551,-9.183],[84.142,-13.463],[69.02,-28.046],[59.666,-44.945],[49.401,-60.881],[45.014,-68.377],[45.036,-69.029],[45.434,-72.211],[50.611,-68.857],[48.191,-80.58],[46.177,-82.34],[40.733,-85.03],[39.862,-85.3],[35.117,-86.824],[34.48,-86.723],[32.092,-86.742],[30.374,-85.335],[30.246,-77.693],[28.522,-71.089],[25.814,-59.764],[22.456,-49.84],[18.014,-42.109],[15.634,-35.961],[12.441,-30.587],[4.974,-23.992],[-3.017,-11.963],[-3.941,-5.122],[-1.37,7.192],[-0.208,7.534],[0.97,7.811],[9.776,12.311],[10.003,12.365],[14.941,11.022],[19.749,7.568],[28.43,6.243],[31.177,8.505],[32.172,9.244],[36.333,8.986],[41.085,7.712],[42.132,7.885],[45.882,12.8],[44.848,18.425],[44.322,19.407],[44.655,26.397],[43.109,27.743],[41.418,28.078],[42.298,29.717],[44.233,31.057],[45.122,34.578],[44.247,35.405],[41.242,33.927],[36.094,28.964],[35.264,26.578],[34.25,21.974],[32.388,22.679],[31.426,22.738],[28.509,25.244],[27.241,28.597],[25.857,34.762],[24.629,37.18],[24.253,38.583],[22.283,38.258],[17.863,35.203],[15.194,36.478],[12.986,39.504],[1.66,45.235],[-1.413,45.916],[-2.639,46.75],[-8.221,49.674],[-10.073,50.427],[-12.129,51.232],[-14.43,52.131],[-18.13,52.953],[-19.346,53.001],[-21.913,57.794],[-25.783,61.177],[-28.151,64.874],[-27.626,64.251],[-26.845,62.559],[-28.444,62.794],[-30.626,64.458],[-33.589,65.586],[-32.745,62.902],[-23.879,54.651],[-22.083,50.963],[-22.194,49.466],[-24.517,50.331],[-24.917,52.303],[-27.398,51.254],[-35.155,54.67],[-38.957,57.895],[-41.264,58.258],[-41.027,55.968],[-39.06,53.149],[-36.923,45.691],[-36.431,44.929],[-31.22,41.06],[-26.896,38.009],[-22.633,35.179],[-21.996,34.503],[-18.5,32.296],[-12.707,30.34],[-11.268,28.702],[-12.876,27.502],[-15.283,25.324],[-13.372,25.728],[-7.146,24.538],[-3.135,22.544],[-1.197,21.154],[0.799,18.2],[0.977,17.389],[-0.82,13.608],[-4.762,10.648],[-5.691,7.262],[-5.81,3.642],[-6.432,-7.253],[-6.129,-9.485],[-4.651,-17.04],[-9.737,-16.121],[-39.681,-13.173],[-52.099,-13.689],[-78.401,-17.526],[-99.346,-35.43],[-104.691,-54.84],[-105.38,-56.173],[-106.207,-55.872],[-106.393,-54.117],[-105.044,-52.034],[-109.177,-47.663],[-111.337,-44.886],[-112.555,-45.594],[-113.393,-46.527],[-113.992,-45.14],[-115.513,-43.987],[-118.337,-42.336],[-120.758,-40.588],[-123.772,-40.595],[-124.669,-39.5],[-124.927,-35.939],[-127.604,-34.322],[-128.387,-33.539],[-130.6,-29.604],[-133.798,-24.535],[-136.286,-19.431],[-139.779,-11.457],[-139.561,-6.334],[-139.591,-5.476],[-140.431,2.718],[-140.51,7.583],[-140.908,12.825],[-140.242,16.827],[-140.562,19.525],[-139.546,25.672],[-138.655,29.169],[-137.449,33.66],[-137.758,34.163],[-139.448,32.974],[-138.094,35.45],[-136.427,36.094],[-136.51,37.041],[-138.178,39.297],[-137.496,40.086],[-136.686,39.482],[-135.423,38.352],[-133.897,42.295],[-134.393,45.515],[-132.322,48.872],[-131.822,52.555],[-131.215,54.84],[-129.794,56.263],[-129.4,58.095],[-127.613,61.888],[-124.293,61.503],[-122.888,62.044],[-124.341,64.266],[-125.69,63.367],[-129.71,67.078],[-131.581,67.814],[-130.513,70.14],[-128.664,72.836],[-127.439,74.426],[-123.798,66.942],[-121.344,67.936],[-120.513,74.75],[-120.521,77.041],[-119.266,80.078],[-119.133,83.903],[-118.63,86.15],[-119.539,87.492],[-120.447,90.996],[-117.621,92.048],[-119.427,94.196],[-119.664,95.344],[-116.404,99.54],[-114.376,99.763],[-113.529,99.622],[-111.414,103.546],[-111.225,104.775],[-110.004,103.97],[-110.935,97.989],[-110.31,95.107],[-108.766,95.104],[-107.445,102.602],[-107.288,106.76],[-107.316,107.392],[-111.286,110.195],[-112.883,111.248],[-112.844,113.732],[-112.444,117.021],[-109.264,117],[-103.691,115.602],[-102.018,113.486],[-101.743,112.351],[-97.168,110.202],[-95.71,110.345],[-96.139,111.448],[-96.829,112.092],[-97.336,113.936],[-95.728,113.236],[-95.228,112.848],[-94.776,116.631],[-94.009,118.249],[-93.569,119.772],[-94.065,124.42],[-90.023,131.42],[-88.014,131.723],[-83.43,128.471],[-81.513,128.863],[-82.273,130.247],[-84.371,133.037],[-84.413,133.867],[-83.564,134.048],[-78.507,126.21],[-77.121,124.685],[-74.943,123.665],[-71.474,121.05],[-70.547,118.53],[-70.294,116.089],[-66.895,113.589],[-64.077,112.666],[-63.19,111.84],[-63.539,109.754],[-63.003,108.576],[-62.089,109.413],[-59.868,112.364],[-55.917,108.025],[-55.322,110.561],[-53.148,108.387],[-52.833,106.776],[-51.793,105.752],[-49.762,104.447],[-48.159,103.682],[-46.743,101.808],[-45.423,99.637],[-42.717,96.81],[-36.004,86.876],[-32.922,80.521],[-31.892,78.99],[-30.233,75.481],[-28.688,73.491],[-25.577,72.883],[-23.322,74.148],[-21.807,74.873],[-20.354,74.586],[-20.148,76.138],[-27.204,85.156],[-28.285,89.978],[-29.663,91.368],[-27.721,92.245],[-25.857,94.1],[-27.487,93.712],[-29.628,95.09],[-28.203,96.08],[-26.435,98.343],[-26.176,100.671],[-24.191,101.663],[-19.208,101.533],[-17.408,103.977],[-16.298,104.635],[-9.695,108.929],[-10.561,110.743],[-12.268,112.112],[-10.992,113.104],[-10.423,113.922],[-10.207,115.783],[-6.672,115.388],[1.462,109.9],[5.973,111.488],[7.998,113.249],[8.809,114.797],[7.721,115.673],[6.375,117.21],[11.028,118.486],[11.907,118.637],[18.391,118.097],[20.315,118.02],[19.001,117.084],[18.892,116.495],[18.552,112.95],[19.801,107.73],[21.418,107.937],[23.341,108.113],[24.789,107.656],[28.837,104.387],[30.604,102.555],[33.173,101.864],[33.16,99.32],[29.982,95.067],[31.467,90.616],[31.727,90.017],[35.785,84.295],[37.428,81.861],[37.969,80.148],[38.531,82.063],[38.664,82.927],[39.931,82.467],[42.942,79.65],[44.986,79.864],[45.686,82.92],[45.497,83.615],[51.072,85.332],[53.08,84.402],[56.471,84.903],[57.783,86.346],[58.879,84.682],[59.517,84.03],[60.502,85.461],[61.207,95.216],[60.095,95.614],[58.887,94.962],[58.319,102.699],[59.783,104.379],[61.155,104.953],[64.392,107.8],[70.485,108.338],[73.163,109.537],[75.473,109.416],[83.296,110.724],[86.59,107.868],[88.502,105.313],[90.97,107.253],[91.85,108.339],[94.415,109.483],[95.614,109.838],[95.428,108.595],[95.478,104.432],[97.931,103.798],[99.408,105.483],[100.515,107.278],[102.598,108.267],[104.015,108.65],[103.512,106.79],[102.986,105.002],[103.056,103.968],[101.467,99.628],[101.642,99.04],[102.001,95.273],[101.319,92.089],[99.614,87.908],[98.913,86.779],[96.655,82.693],[94.837,80.342],[88.978,74.815],[80.59,72.671],[78.66,71.905],[73.582,67.407],[61.507,61.279],[55.676,61.1],[25.402,60.567],[21.868,62.945],[19.064,63.408],[15.963,63.229],[12.478,65.836],[7.29,68.567],[-2.814,69.163],[-12.72,69.844],[-21.186,72.425],[-20.97,71.377],[-16.19,66.228],[-12.195,65.128],[-10.762,67.029],[-9.201,67.078],[-7.008,66.138],[-0.777,65.914],[3.21,64.796],[10.689,60.926],[13.354,59.795],[20.824,58.677],[36.487,56.835],[44.018,58.222],[54.259,59.049],[63.861,59.111],[68.578,61.209],[78.809,66.821],[84.402,67.749],[89.517,69.501],[93.715,70.421],[96.275,70.912],[103.619,75.014],[103.976,69.461],[105.207,67.846],[105.876,66.026],[108.004,67.613],[111.793,77.36],[110.96,79.694],[110.782,81.466],[110.96,84.125],[111.053,91.004],[114.176,98.995],[116.113,103.431],[117.062,106.884],[117.635,108.249],[119.215,109.944],[121.429,112.904],[120.408,121.616],[120.499,122.299],[124.98,133.126],[125.717,136.09],[127.051,138.99],[128.788,142.575],[131.014,142.695],[131.554,141.027],[131.827,139.116],[125.635,158.32],[124.515,161.232]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2,0.2,0.2,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[470.47,323.024],"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":"Group 17","np":4,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.263,-3.133],[0.022,-0.639],[0.254,-0.739],[27.825,5.764],[12.399,15.886],[-0.22,6.712],[-9.428,3.553],[-34.326,12.867],[-19.628,7.316],[-6.503,2.409],[-0.163,-0.039],[-1.198,-2.705],[1.936,0.334],[-0.018,-0.512],[-2.64,-2.47]],"o":[[-1.042,0.981],[-0.848,0.624],[-0.021,0.619],[-5.378,15.625],[-6.465,-1.34],[-9.636,-1.676],[0.775,-23.583],[28.795,-10.85],[25.395,-9.52],[8.692,-3.24],[13.171,-4.88],[-2.931,2.566],[0.393,0.886],[-0.642,-0.111],[0.098,2.912],[0,0]],"v":[[139.26,49.254],[128.521,103.317],[128.247,105.228],[127.706,106.896],[15.901,132.456],[-114.289,101.458],[-150.517,-17.108],[-129.401,-93.828],[27.526,-128.7],[94.308,-52.418],[137.566,-52.418],[148.086,-44.585],[147.812,-36.596],[146.984,-35.012],[146.13,-34.188],[147.18,-10.957]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[473.776,358.823],"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":"Group 18","np":2,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.208,0],[0.283,0.767],[-1.007,2.149],[0.458,2.588],[-0.383,1.083],[0.964,0.804],[-0.659,0.616],[0.325,0.643],[-0.343,2.298],[0.201,0.689],[-1.607,0.846],[0.18,0.578],[0.729,3.065],[-1.558,4.69],[-0.403,3.649],[0.024,3.245],[-0.943,0.654],[-0.083,-1.488],[-0.231,-4.236],[0.208,-6.242],[0.895,-4.273],[1.501,-6.986],[0.586,-2.12],[0.259,-2.679]],"o":[[-0.057,-0.684],[-0.645,-1.753],[0.967,-2.066],[-0.198,-1.118],[0.277,-0.785],[-0.866,-0.723],[0.573,-0.536],[-1.241,-2.457],[0.106,-0.711],[-0.389,-1.338],[0.527,-0.277],[-0.944,-3.042],[2.85,-4.301],[1.097,-3.303],[0.354,-3.198],[-0.005,-0.659],[0.285,1.628],[0.239,4.243],[0.343,6.271],[-0.146,4.353],[-1.465,6.995],[-0.434,2.017],[-0.706,2.556],[-2.208,0]],"v":[[-1.803,39.243],[-4.958,40.211],[-4.916,34.822],[-4.328,27.21],[-4.208,23.959],[-4.571,21.7],[-4.044,19.247],[-3.2,17.482],[-2.709,10.535],[-3.068,8.482],[-2.109,4.84],[-1.696,3.748],[-2.146,-5.52],[0.969,-19.729],[2.068,-30.624],[3.12,-40.223],[4.229,-42.281],[5.003,-37.695],[5.58,-24.96],[5.45,-6.192],[4.942,6.867],[3.234,28.021],[3.244,36.04],[1.664,42.28]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.224000010771,0.224000010771,0.204000001795,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[581.003,595.027],"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":"Group 19","np":2,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.668,0.327],[-1.187,1.044],[0.607,1.054],[0.046,0.467],[-0.061,3.712],[0.312,3.873],[0.755,2.336],[0.891,-0.084],[0.242,-0.45],[0.148,-0.437],[-0.086,-1.836],[-0.419,-6.243],[-0.389,-5.321],[-0.657,-5.739],[-0.65,-1.766],[-0.921,-4.711],[-1.697,-0.762],[0.989,2.715],[-0.127,1.395],[2.151,1.178],[-0.394,1.291],[0.469,0.488],[0.307,0.823],[-0.218,0.541],[-0.506,-0.11],[0.071,1.313],[0.782,-0.224],[0.467,0.69],[-0.352,0.432],[-0.548,-0.341],[-0.048,0.832],[1.289,-0.012],[0.221,0.827],[0.464,3.27],[-0.897,-0.132],[-0.2,-0.903],[-0.566,0.064],[-0.11,0.391],[0.498,1.133]],"o":[[-0.825,-1.257],[1.688,-1.485],[-0.217,-0.378],[-0.358,-3.652],[0.063,-3.896],[-0.19,-2.359],[-0.223,-0.687],[-1.274,0.12],[-0.221,0.414],[-0.631,1.86],[0.292,6.211],[0.356,5.302],[0.423,5.794],[0.23,2],[1.664,4.518],[0.298,1.523],[-0.466,-2.767],[-0.461,-1.266],[0.176,-1.94],[0.789,-1.132],[0.249,-0.817],[-0.534,-0.554],[-0.155,-0.416],[0.268,-0.668],[1.027,0.224],[-0.08,-1.46],[-1.071,0.307],[-0.319,-0.473],[0.614,-0.753],[1.099,0.684],[0.064,-1.108],[-0.756,0.007],[-0.859,-3.214],[-0.07,-0.496],[0.134,0.913],[0.098,0.442],[0.745,-0.084],[0.465,-1.646],[-0.83,-1.886]],"v":[[-130.841,-89.601],[-132.904,-92.335],[-132.932,-95.478],[-133.147,-96.861],[-133.789,-107.847],[-133.378,-119.5],[-133.255,-126.488],[-134.568,-127.908],[-134.887,-126.491],[-135.557,-125.257],[-137.273,-119.659],[-137.975,-101.108],[-137.22,-85.145],[-134.363,-68.067],[-133.182,-62.194],[-129.243,-48.403],[-126.889,-44.603],[-127.824,-52.813],[-129.807,-55.431],[-131.195,-60.573],[-129.079,-61.064],[-130.277,-62.659],[-131.945,-64.27],[-132.456,-65.503],[-131.031,-65.993],[-129.388,-67.145],[-130.967,-67.757],[-132.922,-69.114],[-132.969,-70.687],[-131.082,-70.526],[-129.859,-71.319],[-131.405,-73.153],[-133.043,-74.229],[-134.367,-84.046],[-133.326,-85.031],[-132.902,-82.288],[-131.969,-81.386],[-131.555,-82.488],[-132.25,-87.102]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-1.41,-0.682],[-2.852,-0.299],[-2.249,-1.094],[1.62,0.001],[79.9,-13.829],[221.58,202.446],[0.866,1.549],[-1.869,0.656],[-1.93,0.968],[-4.654,0.776],[-2.014,3.08],[-6.139,1.824],[-4.033,1.521],[-6.271,3.168],[-2.338,0.669],[-3.605,2.697],[-1.978,1.264],[-7.253,1.325],[-0.244,1.412],[-0.683,24.035],[0.24,4.099],[-0.813,7.497],[-1.933,3.637],[0.159,0.494],[-1.358,1.83],[-0.067,-6.692],[-1.506,-0.389],[-5.938,-1.54],[-3.608,-2.147],[-4.173,-1.06],[-3.066,-1.21],[-0.025,-0.811],[0,0]],"o":[[4.549,1.457],[2.826,1.369],[2.292,0.24],[2.059,1.003],[-57.148,83.012],[0.259,-2.679],[-1.774,0],[-32.224,-57.604],[2.063,-0.724],[4.365,-2.188],[3.375,-0.562],[2.687,-4.109],[4.117,-1.222],[6.535,-2.465],[2.08,-1.051],[4.124,-1.18],[1.859,-1.39],[6.432,-4.113],[1.388,-0.254],[0.152,-0.88],[0.307,-4.076],[-0.101,-1.711],[0.411,-3.791],[0.232,-0.437],[-0.705,-2.187],[0.988,-1.332],[0.017,1.637],[5.938,1.537],[6.536,1.695],[3.756,2.234],[6.306,1.601],[0.734,0.29],[0,0],[0,0]],"v":[[290.824,-84.993],[318.191,-74.56],[336.835,-66.995],[388.856,-50.589],[346.539,25.319],[123.236,206.03],[-310.833,81.638],[-352.273,23.144],[-389.046,-48.107],[-335.018,-65.601],[-321.238,-68.876],[-312.867,-73.424],[-222.423,-107.61],[-209.727,-110.141],[-190.187,-117.751],[-183.807,-120.692],[-171.672,-125.089],[-165.986,-129.127],[-145.106,-135.979],[-142.735,-137.958],[-128.486,-159.556],[-127.94,-171.804],[-126.434,-202.176],[-125.173,-213.559],[-128.273,-232.905],[130.309,-156.118],[133.76,-133.323],[135.92,-130.454],[153.726,-125.814],[201.518,-112.405],[213.911,-108.712],[268.611,-94.711],[300.585,-81.43],[290.741,-84.908]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[450.148,664.908],"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":"Group 20","np":3,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false}],"ip":500,"op":500,"st":0,"bm":0,"hidden":0},{"ddd":0,"ind":2,"ty":0,"nm":"Pre-comp 26","refId":"comp_0","sr":0.91362126245847,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,500,0],"ix":2},"a":{"a":0,"k":[500,500,0],"ix":1},"s":{"a":0,"k":[78,78,100],"ix":6}},"ao":0,"w":1000,"h":1000,"ip":0,"op":275,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,500,0],"ix":2},"a":{"a":0,"k":[-34.104,65.896,0],"ix":1},"s":{"a":0,"k":[130.151,130.151,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[767.792,767.792],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":57,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[0.903987989239,0.903987989239,0.903987989239,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.928008674173,0.934822770661,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-34.104,65.896],"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":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":500,"op":500,"st":0,"bm":0,"hidden":0}],"markers":[{"tm":175,"cm":"1","dr":0}],"chars":[{"ch":"A","size":134,"style":"Light","w":66.7,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.5,0],[17,-22.6],[49.8,-22.6],[58.1,0],[65.1,0],[37.5,-72],[29.8,-72],[1.5,0]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[33.4,-66.2],[47.5,-28.4],[19.3,-28.4]],"c":true},"ix":2},"nm":"A","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"A","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"d","size":134,"style":"Light","w":61.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.766,-2.7],[1.466,-1.966],[2.2,-1.133],[2.8,0],[2.133,0.9],[1.6,1.734],[0.9,2.5],[0,3.267],[-0.667,2.834],[-1.467,2.134],[-2.267,1.234],[-3.134,0],[-2.167,-1.166],[-1.5,-1.966],[-0.8,-2.633],[0,-2.933]],"o":[[-0.767,2.7],[-1.467,1.967],[-2.2,1.134],[-2.534,0],[-2.134,-0.9],[-1.6,-1.733],[-0.9,-2.5],[-0.134,-3.266],[0.666,-2.833],[1.466,-2.133],[2.266,-1.233],[2.733,0],[2.166,1.167],[1.5,1.967],[0.8,2.634],[0,3.134]],"v":[[46.05,-17.35],[42.7,-10.35],[37.2,-5.7],[29.7,-4],[22.7,-5.35],[17.1,-9.3],[13.35,-15.65],[12,-24.3],[12.8,-33.45],[16,-40.9],[21.6,-45.95],[29.7,-47.8],[37.05,-46.05],[42.55,-41.35],[46,-34.45],[47.2,-26.1]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[3.366,1.634],[3.666,0],[2.9,-1.5],[1.9,-2.5],[0.933,-3.333],[0,-3.6],[-0.867,-3.333],[-1.9,-2.433],[-2.934,-1.4],[-4.2,0],[-1.734,0.466],[-1.634,0.867],[-1.367,1.3],[-0.867,1.734],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-1.934,-3.2],[-3.367,-1.633],[-3.934,0],[-2.9,1.5],[-1.9,2.5],[-0.934,3.334],[0,3.8],[0.866,3.334],[1.9,2.434],[2.933,1.4],[1.666,0],[1.733,-0.467],[1.633,-0.866],[1.366,-1.3],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[47.2,-43.5],[39.25,-50.75],[28.7,-53.2],[18.45,-50.95],[11.25,-44.95],[7,-36.2],[5.6,-25.8],[6.9,-15.1],[11.05,-6.45],[18.3,-0.7],[29,1.4],[34.1,0.7],[39.15,-1.3],[43.65,-4.55],[47,-9.1],[47.2,-9.1],[47.2,0],[53.2,0],[53.2,-72],[47.2,-72]],"c":true},"ix":2},"nm":"d","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"d","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":" ","size":134,"style":"Light","w":27.8,"data":{},"fFamily":"Helvetica"},{"ch":"M","size":134,"style":"Light","w":83.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[14.6,0],[14.6,-64.2],[14.8,-64.2],[38.5,0],[44.9,0],[68.5,-64.2],[68.7,-64.2],[68.7,0],[75.5,0],[75.5,-72],[65.2,-72],[42,-8.5],[41.8,-8.5],[18.2,-72],[7.8,-72],[7.8,0]],"c":true},"ix":2},"nm":"M","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"M","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"o","size":134,"style":"Light","w":55.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.967,1.3],[-2.1,2.4],[-1.134,3.334],[0,4.134],[0.966,3.334],[2,2.434],[3,1.434],[4.066,0],[3,-1.433],[2,-2.466],[1,-3.3],[0,-3.8],[-1.267,-3.4],[-2.167,-2.266],[-2.9,-1.133],[-3.334,-0.067]],"o":[[2.966,-1.3],[2.1,-2.4],[1.133,-3.333],[0,-3.8],[-0.967,-3.333],[-2,-2.433],[-3,-1.433],[-4,0],[-3,1.434],[-2,2.467],[-1,3.3],[0,4.534],[1.266,3.4],[2.166,2.267],[2.9,1.133],[3.6,0]],"v":[[37.65,-0.55],[45.25,-6.1],[50.1,-14.7],[51.8,-25.9],[50.35,-36.6],[45.9,-45.25],[38.4,-51.05],[27.8,-53.2],[17.3,-51.05],[9.8,-45.2],[5.3,-36.55],[3.8,-25.9],[5.7,-14],[10.85,-5.5],[18.45,-0.4],[27.8,1.4]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.666,-2.6],[1.4,-2.066],[2.233,-1.233],[3.133,0],[2.2,1.067],[1.466,1.934],[0.766,2.7],[0,3.2],[-0.667,2.634],[-1.4,2.034],[-2.234,1.234],[-3.134,0],[-2.2,-1.133],[-1.4,-1.966],[-0.667,-2.666],[0,-3.066]],"o":[[-0.667,2.6],[-1.4,2.067],[-2.234,1.234],[-2.867,0],[-2.2,-1.066],[-1.467,-1.933],[-0.767,-2.7],[0,-2.8],[0.666,-2.633],[1.4,-2.033],[2.233,-1.233],[3.2,0],[2.2,1.134],[1.4,1.967],[0.666,2.667],[0,2.8]],"v":[[44.4,-17.8],[41.3,-10.8],[35.85,-5.85],[27.8,-4],[20.2,-5.6],[14.7,-10.1],[11.35,-17.05],[10.2,-25.9],[11.2,-34.05],[14.3,-41.05],[19.75,-45.95],[27.8,-47.8],[35.9,-46.1],[41.3,-41.45],[44.4,-34.5],[45.4,-25.9]],"c":true},"ix":2},"nm":"o","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"o","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"n","size":134,"style":"Light","w":55.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.134,1.534],[-0.6,1.667],[-0.867,1.2],[-1.234,0.934],[-1.534,0.567],[-1.867,0],[-2.067,-2.333],[0,-4.666],[0,0],[0,0],[0,0],[0.233,1.967],[1.266,1.867],[2.733,1.1],[3.2,0],[2.566,-1.6],[2.4,-2.533],[0,0],[0,0],[0,0],[0,0]],"o":[[0,-1.8],[0.133,-1.533],[0.466,-1.333],[0.866,-1.2],[1.233,-0.933],[1.533,-0.566],[4.8,0],[2.066,2.334],[0,0],[0,0],[0,0],[0,-2.133],[-0.234,-1.966],[-1.867,-2.733],[-2.734,-1.1],[-3.6,0],[-2.567,1.6],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[13.2,-27.9],[13.4,-32.9],[14.5,-37.7],[16.5,-41.5],[19.65,-44.7],[23.8,-46.95],[28.9,-47.8],[39.2,-44.3],[42.3,-33.8],[42.3,0],[48.3,0],[48.3,-33.9],[47.95,-40.05],[45.7,-45.8],[38.8,-51.55],[29.9,-53.2],[20.65,-50.8],[13.2,-44.6],[13.2,-51.8],[7.2,-51.8],[7.2,0],[13.2,0]],"c":true},"ix":2},"nm":"n","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"n","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"e","size":134,"style":"Light","w":55.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.867,2.2],[-1.434,1.667],[-2.034,1],[-2.667,0],[-2.067,-0.966],[-1.367,-1.633],[-0.7,-2.233],[0,-2.533]],"o":[[0.266,-2.466],[0.866,-2.2],[1.433,-1.666],[2.033,-1],[2.666,0],[2.066,0.967],[1.366,1.634],[0.7,2.234],[0,0]],"v":[[10.9,-29.5],[12.6,-36.5],[16.05,-42.3],[21.25,-46.3],[28.3,-47.8],[35.4,-46.35],[40.55,-42.45],[43.65,-36.65],[44.7,-29.5]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[4.066,4.9],[7.133,0],[2.933,-1.433],[2.033,-2.5],[1.1,-3.333],[0,-3.8],[-0.934,-3.3],[-1.934,-2.433],[-3,-1.4],[-4.134,0],[-2.467,0.866],[-1.8,1.567],[-1.2,2.1],[-0.734,2.467],[0,0],[2.8,-2.066],[3.933,0],[2.2,1.1],[1.433,1.834],[0.733,2.5],[0,2.8]],"o":[[0.066,-9.333],[-4.067,-4.9],[-3.734,0],[-2.934,1.434],[-2.034,2.5],[-1.1,3.334],[0,3.8],[0.933,3.3],[1.933,2.434],[3,1.4],[3.266,0],[2.466,-0.866],[1.8,-1.566],[1.2,-2.1],[0,0],[-0.934,3.8],[-2.8,2.067],[-2.867,0],[-2.2,-1.1],[-1.434,-1.833],[-0.734,-2.5],[0,0]],"v":[[51.1,-24.5],[45.1,-45.85],[28.3,-53.2],[18.3,-51.05],[10.85,-45.15],[6.15,-36.4],[4.5,-25.7],[5.9,-15.05],[10.2,-6.45],[17.6,-0.7],[28.3,1.4],[36.9,0.1],[43.3,-3.55],[47.8,-9.05],[50.7,-15.9],[44,-15.9],[38.4,-7.1],[28.3,-4],[20.7,-5.65],[15.25,-10.05],[12,-16.55],[10.9,-24.5]],"c":true},"ix":2},"nm":"e","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"e","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"y","size":134,"style":"Light","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.967,-0.134],[-1.067,0],[-1.5,0.966],[-1.234,1.833],[-1.1,2.6],[-1.2,3.266],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.466,-1.633],[0.7,-1.498],[1.066,-1.067],[1.666,0],[0.833,0.133],[0.8,0.133]],"o":[[0.8,0.2],[0.966,0.133],[2.066,0],[1.5,-0.967],[1.233,-1.834],[1.1,-2.6],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.6,1.131],[-0.467,1.63],[-0.7,1.497],[-1.067,1.064],[-0.867,0],[-0.834,-0.134],[0,0]],"v":[[6.8,19.7],[9.45,20.2],[12.5,20.4],[17.85,18.95],[21.95,14.75],[25.45,8.1],[28.9,-0.7],[48.2,-51.8],[41.7,-51.8],[25.1,-7.3],[8.5,-51.8],[1.8,-51.8],[21.9,0.322],[20.3,4.466],[18.55,9.158],[15.9,13.003],[11.8,14.6],[9.25,14.4],[6.8,14]],"c":true},"ix":2},"nm":"y","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"y","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"D","size":134,"style":"Light","w":72.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.334,0.234],[-2.167,0.634],[-1.967,1.134],[-1.667,1.867],[-1.1,2.167],[-0.667,2.367],[-0.3,2.467],[0,2.4],[0.366,2.834],[0.9,2.767],[1.533,2.5],[2.4,1.734],[1.766,0.734],[1.866,0.367],[1.933,0.1],[2,0],[0,0],[0,0]],"o":[[2.4,0],[2.333,-0.233],[2.166,-0.633],[1.966,-1.133],[1.666,-1.8],[1.1,-2.166],[0.666,-2.366],[0.3,-2.466],[0,-2.4],[-0.367,-2.833],[-0.9,-2.766],[-1.534,-2.5],[-1.667,-1.2],[-1.767,-0.733],[-1.867,-0.366],[-1.934,-0.1],[0,0],[0,0],[0,0]],"v":[[32.7,0],[39.8,-0.35],[46.55,-1.65],[52.75,-4.3],[58.2,-8.8],[62.35,-14.75],[65,-21.55],[66.45,-28.8],[66.9,-36.1],[66.35,-43.95],[64.45,-52.35],[60.8,-60.25],[54.9,-66.6],[49.75,-69.5],[44.3,-71.15],[38.6,-71.85],[32.7,-72],[8.1,-72],[8.1,0]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-2.934,-0.333],[-2.134,-1.133],[-1.6,-2.033],[-0.934,-2.433],[-0.334,-2.7],[0,-2.6],[0.366,-2.666],[0.9,-2.433],[1.533,-2.066],[2.4,-1.2],[2.7,-0.366],[3.066,0],[0,0]],"o":[[0,0],[3,0],[2.933,0.334],[2.533,1.334],[1.6,2.034],[0.933,2.434],[0.333,2.7],[0,2.467],[-0.367,2.667],[-0.9,2.434],[-1.534,2.067],[-2.8,1.467],[-2.7,0.367],[0,0],[0,0]],"v":[[14.9,-66.2],[31.2,-66.2],[40.1,-65.7],[47.7,-63.5],[53.9,-58.45],[57.7,-51.75],[59.6,-44.05],[60.1,-36.1],[59.55,-28.4],[57.65,-20.75],[54,-14],[48.1,-9.1],[39.85,-6.35],[31.2,-5.8],[14.9,-5.8]],"c":true},"ix":2},"nm":"D","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"D","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"t","size":134,"style":"Light","w":27.8,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.833,-0.133],[0.8,0],[0.7,0.267],[0.333,0.6],[0.066,0.934],[0,1.267],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-1.567,-1.5],[-3,0],[-1.2,0.333],[-0.734,0.133]],"o":[[-0.8,0.2],[-0.834,0.134],[-1.267,0],[-0.7,-0.266],[-0.334,-0.6],[-0.067,-0.933],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,3.867],[1.566,1.5],[1.466,0],[1.2,-0.334],[0,0]],"v":[[25.4,-4.7],[22.95,-4.2],[20.5,-4],[17.55,-4.4],[16,-5.7],[15.4,-8],[15.3,-11.3],[15.3,-46.8],[25,-46.8],[25,-51.8],[15.3,-51.8],[15.3,-66.2],[9.3,-66.2],[9.3,-51.8],[2,-51.8],[2,-46.8],[9.3,-46.8],[9.3,-8.9],[11.65,-0.85],[18.5,1.4],[22.5,0.9],[25.4,0.2]],"c":true},"ix":2},"nm":"t","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"t","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"a","size":134,"style":"Light","w":55.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.066,-1.9],[1.766,-1.233],[2.266,-0.6],[2.4,0],[1.366,0.367],[1.033,0.767],[0.633,1.167],[0,1.6],[-2.567,1.734],[-4.6,0.334],[-2.6,0.334],[-2.534,1.067]],"o":[[0,2.6],[-1.067,1.9],[-1.767,1.234],[-2.267,0.6],[-1.4,0],[-1.367,-0.366],[-1.034,-0.766],[-0.634,-1.166],[0,-3.533],[2.566,-1.733],[2.6,-0.2],[2.6,-0.333],[0,0]],"v":[[41.1,-19.1],[39.5,-12.35],[35.25,-7.65],[29.2,-4.9],[22.2,-4],[18.05,-4.55],[14.45,-6.25],[11.95,-9.15],[11,-13.3],[14.85,-21.2],[25.6,-24.3],[33.4,-25.1],[41.1,-27.2]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-8.8],[-0.934,-1.833],[-1.6,-1.266],[-2.1,-0.6],[-2.267,0],[-3.267,1.466],[-2.534,2.8],[-0.134,-0.833],[-0.367,-0.7],[-0.6,-0.5],[-1,-0.134],[-0.934,0],[-0.9,0.266],[-0.467,0.134],[0,0],[0.833,0.634],[0,2.334],[0,0],[0.966,2.067],[1.7,1.234],[2.3,0.567],[2.6,0],[2.5,-0.633],[1.9,-1.366],[1.2,-2.166],[0.2,-3.066],[0,0],[-0.834,1.5],[-1.3,0.9],[-1.734,0.367],[-2.067,0],[-1.967,-1.966],[0,-3.066],[0.233,-1.1],[1,-0.466],[1.566,-0.266],[1.133,-0.133]],"o":[[-12.067,1.6],[0,2.534],[0.933,1.834],[1.6,1.267],[2.1,0.6],[3.8,0],[3.266,-1.466],[0,0.934],[0.133,0.834],[0.366,0.7],[0.6,0.5],[0.866,0.2],[0.866,0],[0.9,-0.267],[0,0],[-2.534,0.934],[-0.834,-0.633],[0,0],[0,-3],[-0.967,-2.066],[-1.7,-1.233],[-2.3,-0.566],[-2.8,0],[-2.5,0.634],[-1.9,1.367],[-1.2,2.167],[0,0],[0.266,-2.266],[0.833,-1.5],[1.3,-0.9],[1.733,-0.366],[4.666,0],[1.966,1.967],[0,0.934],[-0.234,1.1],[-1,0.467],[-1.567,0.267],[0,0]],"v":[[22.7,-29.1],[4.6,-13.5],[6,-6.95],[9.8,-2.3],[15.35,0.5],[21.9,1.4],[32.5,-0.8],[41.2,-7.2],[41.4,-4.55],[42.15,-2.25],[43.6,-0.45],[46,0.5],[48.7,0.8],[51.35,0.4],[53.4,-0.2],[53.4,-4.9],[48.35,-4.45],[47.1,-8.9],[47.1,-37.1],[45.65,-44.7],[41.65,-49.65],[35.65,-52.35],[28.3,-53.2],[20.35,-52.25],[13.75,-49.25],[9.1,-43.95],[7,-36.1],[13.1,-36.1],[14.75,-41.75],[17.95,-45.35],[22.5,-47.25],[28.2,-47.8],[38.15,-44.85],[41.1,-37.3],[40.75,-34.25],[38.9,-31.9],[35.05,-30.8],[31,-30.2]],"c":true},"ix":2},"nm":"a","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"a","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"i","size":134,"style":"Light","w":22.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[14.1,0],[14.1,-51.8],[8.1,-51.8],[8.1,0]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[14.4,-63.1],[14.4,-72],[7.8,-72],[7.8,-63.1]],"c":true},"ix":2},"nm":"i","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"i","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"l","size":134,"style":"Light","w":22.2,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[14.1,0],[14.1,-72],[8.1,-72],[8.1,0]],"c":true},"ix":2},"nm":"l","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"l","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"s","size":134,"style":"Light","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.934,-2.133],[-1.667,-1.6],[-2.367,-0.9],[-3.067,0],[-2.567,0.633],[-1.867,1.267],[-1.067,1.9],[0,2.467],[1.633,1.867],[2.466,1.1],[2.866,0.6],[2.466,0.767],[1.633,1.234],[0,2.334],[-2,1.634],[-3.8,0],[-2.5,-1.633],[-0.534,-4],[0,0],[3.5,2.5],[5.6,0],[3.166,-2.766],[0,-4.333],[-1.634,-1.866],[-2.467,-1],[-2.867,-0.5],[-2.467,-0.7],[-1.634,-1.233],[0,-2.533],[0.533,-1.133],[1.033,-0.9],[1.6,-0.533],[2.2,0],[2.433,1.834],[0.933,4.467]],"o":[[0.133,2.467],[0.933,2.134],[1.666,1.6],[2.366,0.9],[3.066,0],[2.566,-0.633],[1.866,-1.266],[1.066,-1.9],[0,-3.333],[-1.634,-1.866],[-2.467,-1.1],[-2.867,-0.6],[-2.467,-0.766],[-1.634,-1.233],[0,-2.666],[2,-1.633],[3.8,0],[2.5,1.634],[0,0],[-0.734,-5.866],[-3.5,-2.5],[-5.8,0],[-3.167,2.767],[0,3.4],[1.633,1.867],[2.466,1],[2.866,0.5],[2.466,0.7],[1.633,1.234],[0,1.267],[-0.534,1.134],[-1.034,0.9],[-1.6,0.534],[-4.534,0],[-2.434,-1.833],[0,0]],"v":[[4.6,-16.2],[6.2,-9.3],[10.1,-3.7],[16.15,0.05],[24.3,1.4],[32.75,0.45],[39.4,-2.4],[43.8,-7.15],[45.4,-13.7],[42.95,-21.5],[36.8,-25.95],[28.8,-28.5],[20.8,-30.55],[14.65,-33.55],[12.2,-38.9],[15.2,-45.35],[23.9,-47.8],[33.35,-45.35],[37.9,-36.9],[44,-36.9],[37.65,-49.45],[24,-53.2],[10.55,-49.05],[5.8,-38.4],[8.25,-30.5],[14.4,-26.2],[22.4,-23.95],[30.4,-22.15],[36.55,-19.25],[39,-13.6],[38.2,-10],[35.85,-6.95],[31.9,-4.8],[26.2,-4],[15.75,-6.75],[10.7,-16.2]],"c":true},"ix":2},"nm":"s","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"s","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"W","size":134,"style":"Light","w":88.9,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[48.2,-72],[40.6,-72],[23.9,-9.6],[23.7,-9.6],[8.2,-72],[1.4,-72],[20,0],[27.5,0],[44.2,-63.6],[44.4,-63.6],[61.1,0],[68.6,0],[87.5,-72],[80.5,-72],[64.8,-9.6],[64.6,-9.6]],"c":true},"ix":2},"nm":"W","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"W","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"r","size":134,"style":"Light","w":33.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.5,2.634],[-1.3,1.934],[-2.2,1.134],[-3.4,-0.066],[0,0],[2.633,-1.633],[1.666,-4.133],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,-2.866],[0.5,-2.633],[1.3,-1.933],[2.2,-1.133],[0,0],[-4.334,0],[-2.634,1.634],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[13.5,-25.4],[14.25,-33.65],[16.95,-40.5],[22.2,-45.1],[30.6,-46.7],[30.6,-53.2],[20.15,-50.75],[13.7,-42.1],[13.5,-42.1],[13.5,-51.8],[7.5,-51.8],[7.5,0],[13.5,0]],"c":true},"ix":2},"nm":"r","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"r","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"k","size":134,"style":"Light","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[12.8,0],[12.8,-19.6],[22.6,-28.9],[42,0],[48.7,0],[27,-33.1],[46.4,-51.8],[38.2,-51.8],[12.8,-27.2],[12.8,-72],[6.8,-72],[6.8,0]],"c":true},"ix":2},"nm":"k","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"k","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"u","size":134,"style":"Light","w":55.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.733,-2.4],[1.333,-1.733],[1.966,-0.966],[2.466,0],[2.066,2.367],[0,4.467],[0,0],[0,0],[0,0],[-0.634,-2.3],[-1.434,-1.733],[-2.334,-0.966],[-3.467,0],[-1.734,0.566],[-1.3,0.834],[-1,1],[-0.8,0.934],[0,0],[0,0],[0,0],[0,0]],"o":[[0,2.867],[-0.734,2.4],[-1.334,1.734],[-1.967,0.967],[-4.734,0],[-2.067,-2.366],[0,0],[0,0],[0,0],[0,2.734],[0.633,2.3],[1.433,1.734],[2.333,0.966],[2.266,0],[1.733,-0.566],[1.3,-0.833],[1,-1],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[42.3,-23.6],[41.2,-15.7],[38.1,-9.5],[33.15,-5.45],[26.5,-4],[16.3,-7.55],[13.2,-17.8],[13.2,-51.8],[7.2,-51.8],[7.2,-17.7],[8.15,-10.15],[11.25,-4.1],[16.9,-0.05],[25.6,1.4],[31.6,0.55],[36.15,-1.55],[39.6,-4.3],[42.3,-7.2],[42.3,0],[48.3,0],[48.3,-51.8],[42.3,-51.8]],"c":true},"ix":2},"nm":"u","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"u","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"T","size":134,"style":"Light","w":55.6,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.6,-66.2],[24.4,-66.2],[24.4,0],[31.2,0],[31.2,-66.2],[54,-66.2],[54,-72],[1.6,-72]],"c":true},"ix":2},"nm":"T","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"T","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"},{"ch":"p","size":134,"style":"Light","w":61.1,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.767,2.7],[-1.467,1.967],[-2.2,1.134],[-2.8,0],[-2.134,-0.9],[-1.6,-1.733],[-0.9,-2.5],[0,-3.266],[0.666,-2.833],[1.466,-2.133],[2.3,-1.233],[3.066,0],[2.166,1.167],[1.5,1.967],[0.8,2.634],[0,2.934]],"o":[[0.766,-2.7],[1.466,-1.966],[2.2,-1.133],[2.533,0],[2.133,0.9],[1.6,1.734],[0.9,2.5],[0.133,3.267],[-0.667,2.834],[-1.467,2.134],[-2.3,1.234],[-2.734,0],[-2.167,-1.166],[-1.5,-1.966],[-0.8,-2.633],[0,-3.133]],"v":[[15.05,-34.45],[18.4,-41.45],[23.9,-46.1],[31.4,-47.8],[38.4,-46.45],[44,-42.5],[47.75,-36.15],[49.1,-27.5],[48.3,-18.35],[45.1,-10.9],[39.45,-5.85],[31.4,-4],[24.05,-5.75],[18.55,-10.45],[15.1,-17.35],[13.9,-25.7]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[-3.367,-1.633],[-3.667,0],[-2.9,1.5],[-1.9,2.5],[-0.934,3.334],[0,3.6],[0.866,3.334],[1.9,2.434],[2.933,1.4],[4.2,0],[1.733,-0.466],[1.633,-0.866],[1.366,-1.333],[0.866,-1.666],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[1.933,3.2],[3.366,1.633],[3.933,0],[2.9,-1.5],[1.9,-2.5],[0.933,-3.333],[0,-3.8],[-0.867,-3.333],[-1.9,-2.433],[-2.934,-1.4],[-1.667,0],[-1.734,0.467],[-1.634,0.867],[-1.367,1.334],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[13.9,-8.3],[21.85,-1.05],[32.4,1.4],[42.65,-0.85],[49.85,-6.85],[54.1,-15.6],[55.5,-26],[54.2,-36.7],[50.05,-45.35],[42.8,-51.1],[32.1,-53.2],[27,-52.5],[21.95,-50.5],[17.45,-47.2],[14.1,-42.7],[13.9,-42.7],[13.9,-51.8],[7.9,-51.8],[7.9,20.4],[13.9,20.4]],"c":true},"ix":2},"nm":"p","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"p","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica"}]}
\ No newline at end of file
diff --git a/app/src/main/res/raw/nav_illustration.json b/app/src/main/res/raw/nav_illustration.json
new file mode 100644
index 000000000..379cd8253
--- /dev/null
+++ b/app/src/main/res/raw/nav_illustration.json
@@ -0,0 +1 @@
+{"v":"5.5.7","fr":25,"ip":0,"op":27,"w":1000,"h":1000,"nm":"four direction arrows","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 6 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[572.401,475.029,0],"to":[8.333,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[622.401,475.029,0],"to":[0,0,0],"ti":[8.333,0,0]},{"t":26,"s":[572.401,475.029,0]}],"ix":2},"a":{"a":0,"k":[572.401,475.029,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-7.335,4.233],[0,0],[7.332,4.236],[0,0],[0.001,-8.47],[0,0],[0,0],[0.002,-12.342],[-12.342,-0.002],[0,0],[0,0]],"o":[[0,0],[7.335,-4.234],[0,0],[-7.333,-4.234],[0,0],[0,0],[-12.343,-0.002],[-0.002,12.342],[0,0],[0,0],[-0.002,8.468]],"v":[[15.598,39.926],[71.419,7.709],[71.422,-7.689],[15.609,-39.924],[2.273,-32.226],[2.271,-22.35],[-56.399,-22.358],[-78.751,-0.014],[-56.406,22.339],[2.265,22.346],[2.263,32.225]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.883542468501,0.549226110122,0.01465436524,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[573.317,475.029],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 5 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[383.506,475.029,0],"to":[-8.333,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[333.506,475.029,0],"to":[0,0,0],"ti":[-8.333,0,0]},{"t":26,"s":[383.506,475.029,0]}],"ix":2},"a":{"a":0,"k":[383.506,475.029,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[7.335,-4.233],[0,0],[-7.332,-4.236],[0,0],[-0.001,8.47],[0,0],[0,0],[-0.002,12.342],[12.342,0.002],[0,0],[0,0]],"o":[[0,0],[-7.335,4.234],[0,0],[7.333,4.234],[0,0],[0,0],[12.343,0.002],[0.001,-12.342],[0,0],[0,0],[0.001,-8.468]],"v":[[-15.597,-39.926],[-71.418,-7.708],[-71.421,7.69],[-15.608,39.924],[-2.273,32.226],[-2.271,22.349],[56.4,22.357],[78.752,0.013],[56.407,-22.339],[-2.264,-22.346],[-2.263,-32.226]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.883542468501,0.549226110122,0.01465436524,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[382.59,475.029],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[479.337,568.79,0],"to":[0,8.333,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[479.337,618.79,0],"to":[0,0,0],"ti":[0,8.333,0]},{"t":26,"s":[479.337,568.79,0]}],"ix":2},"a":{"a":0,"k":[479.337,568.79,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.233,-7.335],[0,0],[-4.236,7.332],[0,0],[8.47,0.001],[0,0],[0,0],[12.342,0.002],[0.002,-12.342],[0,0],[0,0]],"o":[[0,0],[4.233,7.335],[0,0],[4.234,-7.333],[0,0],[0,0],[0.002,-12.343],[-12.343,-0.001],[0,0],[0,0],[-8.468,-0.002]],"v":[[-39.925,15.597],[-7.708,71.418],[7.69,71.421],[39.924,15.608],[32.227,2.273],[22.35,2.271],[22.358,-56.4],[0.014,-78.752],[-22.339,-56.407],[-22.346,2.264],[-32.225,2.263]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.883542468501,0.549226110122,0.01465436524,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[479.337,569.706],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":75,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[479.337,378.392,0],"to":[0,-8.333,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":14,"s":[479.337,328.392,0],"to":[0,0,0],"ti":[0,-8.333,0]},{"t":26,"s":[479.337,378.392,0]}],"ix":2},"a":{"a":0,"k":[479.337,378.392,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.233,7.335],[0,0],[4.236,-7.332],[0,0],[-8.47,-0.001],[0,0],[0,0],[-12.342,-0.002],[-0.002,12.343],[0,0],[0,0]],"o":[[0,0],[-4.234,-7.335],[0,0],[-4.234,7.333],[0,0],[0,0],[-0.002,12.343],[12.342,0.002],[0,0],[0,0],[8.468,0.002]],"v":[[39.926,-15.598],[7.709,-71.419],[-7.689,-71.422],[-39.924,-15.609],[-32.226,-2.273],[-22.349,-2.271],[-22.357,56.399],[-0.013,78.751],[22.339,56.406],[22.347,-2.265],[32.226,-2.263]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.883542468501,0.549226110122,0.01465436524,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[479.337,377.477],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":75,"st":0,"bm":0}],"markers":[]}
diff --git a/app/src/main/res/raw/notification_illustration.json b/app/src/main/res/raw/notification_illustration.json
new file mode 100644
index 000000000..53f945c0c
--- /dev/null
+++ b/app/src/main/res/raw/notification_illustration.json
@@ -0,0 +1 @@
+{"v":"5.5.8","fr":60,"ip":0,"op":361,"w":375,"h":500,"nm":"notifications","ddd":0,"assets":[],"fonts":{"list":[{"fName":"HelveticaLTStd-Cond","fFamily":"Helvetica LT Std","fStyle":"Condensed","ascent":75}]},"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 10 Outlines 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-120,"ix":10},"p":{"a":0,"k":[310.921,347.402,0],"ix":2},"a":{"a":0,"k":[14.084,12.781,0],"ix":1},"s":{"a":0,"k":[156,156,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.8],[2.8,0],[0,2.801],[-2.801,0]],"o":[[0,2.801],[-2.801,0],[0,-2.8],[2.8,0]],"v":[[5.071,-0.001],[0.001,5.071],[-5.071,-0.001],[0.001,-5.071]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":309,"s":[1]},{"t":329,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":299,"s":[33.098,2.071],"to":[-2,1.042],"ti":[2,-1.042]},{"t":317.19921875,"s":[21.098,8.321]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":299,"s":[0,0]},{"t":317.19921875,"s":[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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.001,-4.358],[-5.031,4.358],[5.031,4.358]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":311,"s":[1]},{"t":330,"s":[0]}],"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":299,"s":[38.027,-1.295],"to":[-3.75,3.333],"ti":[3.75,-3.333]},{"t":320,"s":[15.527,18.705]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":299,"s":[0,0]},{"t":320,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":299,"s":[630]},{"t":320,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.175,-3.767],[-2.176,-3.767],[-4.35,0.001],[-2.176,3.767],[2.175,3.767],[4.35,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":309,"s":[1]},{"t":330,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":299,"s":[38.027,-1.295],"to":[-5.167,1.875],"ti":[5.167,-1.875]},{"t":320,"s":[7.027,9.955]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":299,"s":[0,0]},{"t":320,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":299,"s":[630]},{"t":320,"s":[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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":299,"op":364,"st":299,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 10 Outlines 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60.921,252.402,0],"ix":2},"a":{"a":0,"k":[14.084,12.781,0],"ix":1},"s":{"a":0,"k":[182,182,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.8],[2.8,0],[0,2.801],[-2.801,0]],"o":[[0,2.801],[-2.801,0],[0,-2.8],[2.8,0]],"v":[[5.071,-0.001],[0.001,5.071],[-5.071,-0.001],[0.001,-5.071]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":290,"s":[1]},{"t":310,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":280,"s":[33.098,2.071],"to":[-2,1.042],"ti":[2,-1.042]},{"t":298.19921875,"s":[21.098,8.321]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":280,"s":[0,0]},{"t":298.19921875,"s":[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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.001,-4.358],[-5.031,4.358],[5.031,4.358]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":292,"s":[1]},{"t":311,"s":[0]}],"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":280,"s":[38.027,-1.295],"to":[-3.75,3.333],"ti":[3.75,-3.333]},{"t":301,"s":[15.527,18.705]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":280,"s":[0,0]},{"t":301,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":280,"s":[630]},{"t":301,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.175,-3.767],[-2.176,-3.767],[-4.35,0.001],[-2.176,3.767],[2.175,3.767],[4.35,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":290,"s":[1]},{"t":311,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":280,"s":[38.027,-1.295],"to":[-5.167,1.875],"ti":[5.167,-1.875]},{"t":301,"s":[7.027,9.955]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":280,"s":[0,0]},{"t":301,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":280,"s":[630]},{"t":301,"s":[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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":280,"op":364,"st":280,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 10 Outlines 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-120,"ix":10},"p":{"a":0,"k":[310.921,347.402,0],"ix":2},"a":{"a":0,"k":[14.084,12.781,0],"ix":1},"s":{"a":0,"k":[156,156,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.8],[2.8,0],[0,2.801],[-2.801,0]],"o":[[0,2.801],[-2.801,0],[0,-2.8],[2.8,0]],"v":[[5.071,-0.001],[0.001,5.071],[-5.071,-0.001],[0.001,-5.071]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[1]},{"t":219,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":189,"s":[33.098,2.071],"to":[-2,1.042],"ti":[2,-1.042]},{"t":207.19921875,"s":[21.098,8.321]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":189,"s":[0,0]},{"t":207.19921875,"s":[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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.001,-4.358],[-5.031,4.358],[5.031,4.358]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":201,"s":[1]},{"t":220,"s":[0]}],"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":189,"s":[38.027,-1.295],"to":[-3.75,3.333],"ti":[3.75,-3.333]},{"t":210,"s":[15.527,18.705]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":189,"s":[0,0]},{"t":210,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":189,"s":[630]},{"t":210,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.175,-3.767],[-2.176,-3.767],[-4.35,0.001],[-2.176,3.767],[2.175,3.767],[4.35,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":199,"s":[1]},{"t":220,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":189,"s":[38.027,-1.295],"to":[-5.167,1.875],"ti":[5.167,-1.875]},{"t":210,"s":[7.027,9.955]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":189,"s":[0,0]},{"t":210,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":189,"s":[630]},{"t":210,"s":[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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":189,"op":254,"st":189,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 10 Outlines 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60.921,252.402,0],"ix":2},"a":{"a":0,"k":[14.084,12.781,0],"ix":1},"s":{"a":0,"k":[182,182,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.8],[2.8,0],[0,2.801],[-2.801,0]],"o":[[0,2.801],[-2.801,0],[0,-2.8],[2.8,0]],"v":[[5.071,-0.001],[0.001,5.071],[-5.071,-0.001],[0.001,-5.071]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":180,"s":[1]},{"t":200,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":170,"s":[33.098,2.071],"to":[-2,1.042],"ti":[2,-1.042]},{"t":188.19921875,"s":[21.098,8.321]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":170,"s":[0,0]},{"t":188.19921875,"s":[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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.001,-4.358],[-5.031,4.358],[5.031,4.358]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":182,"s":[1]},{"t":201,"s":[0]}],"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":170,"s":[38.027,-1.295],"to":[-3.75,3.333],"ti":[3.75,-3.333]},{"t":191,"s":[15.527,18.705]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":170,"s":[0,0]},{"t":191,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":170,"s":[630]},{"t":191,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.175,-3.767],[-2.176,-3.767],[-4.35,0.001],[-2.176,3.767],[2.175,3.767],[4.35,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":180,"s":[1]},{"t":201,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":170,"s":[38.027,-1.295],"to":[-5.167,1.875],"ti":[5.167,-1.875]},{"t":191,"s":[7.027,9.955]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":170,"s":[0,0]},{"t":191,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":170,"s":[630]},{"t":191,"s":[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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":170,"op":254,"st":170,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 10 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-120,"ix":10},"p":{"a":0,"k":[310.921,347.402,0],"ix":2},"a":{"a":0,"k":[14.084,12.781,0],"ix":1},"s":{"a":0,"k":[156,156,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.8],[2.8,0],[0,2.801],[-2.801,0]],"o":[[0,2.801],[-2.801,0],[0,-2.8],[2.8,0]],"v":[[5.071,-0.001],[0.001,5.071],[-5.071,-0.001],[0.001,-5.071]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":86,"s":[1]},{"t":106,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76,"s":[33.098,2.071],"to":[-2,1.042],"ti":[2,-1.042]},{"t":94.19921875,"s":[21.098,8.321]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":76,"s":[0,0]},{"t":94.19921875,"s":[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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.001,-4.358],[-5.031,4.358],[5.031,4.358]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":88,"s":[1]},{"t":107,"s":[0]}],"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76,"s":[38.027,-1.295],"to":[-3.75,3.333],"ti":[3.75,-3.333]},{"t":97,"s":[15.527,18.705]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":76,"s":[0,0]},{"t":97,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":76,"s":[630]},{"t":97,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.175,-3.767],[-2.176,-3.767],[-4.35,0.001],[-2.176,3.767],[2.175,3.767],[4.35,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":86,"s":[1]},{"t":107,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76,"s":[38.027,-1.295],"to":[-5.167,1.875],"ti":[5.167,-1.875]},{"t":97,"s":[7.027,9.955]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":76,"s":[0,0]},{"t":97,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":76,"s":[630]},{"t":97,"s":[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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":76,"op":141,"st":76,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 10 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60.921,252.402,0],"ix":2},"a":{"a":0,"k":[14.084,12.781,0],"ix":1},"s":{"a":0,"k":[182,182,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.8],[2.8,0],[0,2.801],[-2.801,0]],"o":[[0,2.801],[-2.801,0],[0,-2.8],[2.8,0]],"v":[[5.071,-0.001],[0.001,5.071],[-5.071,-0.001],[0.001,-5.071]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":67,"s":[1]},{"t":87,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57,"s":[33.098,2.071],"to":[-2,1.042],"ti":[2,-1.042]},{"t":75.19921875,"s":[21.098,8.321]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":57,"s":[0,0]},{"t":75.19921875,"s":[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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-0.001,-4.358],[-5.031,4.358],[5.031,4.358]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":69,"s":[1]},{"t":88,"s":[0]}],"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57,"s":[38.027,-1.295],"to":[-3.75,3.333],"ti":[3.75,-3.333]},{"t":78,"s":[15.527,18.705]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":57,"s":[0,0]},{"t":78,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":57,"s":[630]},{"t":78,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[2.175,-3.767],[-2.176,-3.767],[-4.35,0.001],[-2.176,3.767],[2.175,3.767],[4.35,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":67,"s":[1]},{"t":88,"s":[0]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57,"s":[38.027,-1.295],"to":[-5.167,1.875],"ti":[5.167,-1.875]},{"t":78,"s":[7.027,9.955]}],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":57,"s":[0,0]},{"t":78,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":57,"s":[630]},{"t":78,"s":[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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":57,"op":141,"st":57,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 9 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.349,351.92,0],"ix":2},"a":{"a":0,"k":[132.421,77.613,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[2.197,0],[0,2.198],[2.198,0],[0,-2.198],[2.197,0],[0,2.198],[2.197,0],[0,-2.198],[2.198,0],[0,2.198],[2.197,0],[0,-2.198],[2.198,0],[0,2.198],[2.198,0],[0,-2.198],[0,0]],"o":[[0,0],[0,2.198],[-2.199,0],[0,-2.198],[-2.198,0],[0,2.198],[-2.199,0],[0,-2.198],[-2.198,0],[0,2.198],[-2.198,0],[0,-2.198],[-2.199,0],[0,2.198],[-2.198,0],[0,-2.198],[-2.198,0],[0,0],[0,0]],"v":[[31.835,-3.979],[31.835,0],[27.855,3.979],[23.875,0],[19.896,-3.979],[15.916,0],[11.938,3.979],[7.958,0],[3.979,-3.979],[-0.001,0],[-3.98,3.979],[-7.958,0],[-11.938,-3.979],[-15.917,0],[-19.896,3.979],[-23.876,0],[-27.855,-3.979],[-31.835,0],[-31.835,3.979]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":102,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":142,"s":[0]},{"t":176,"s":[0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.5,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[33.085,149.997],"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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[2.198,0],[0,2.199],[2.198,0],[0,-2.197],[2.197,0],[0,2.199],[2.198,0],[0,-2.197],[2.197,0],[0,2.199],[2.197,0],[0,-2.197],[2.198,0],[0,2.199],[2.197,0],[0,-2.197],[0,0]],"o":[[0,0],[0,2.199],[-2.198,0],[0,-2.197],[-2.198,0],[0,2.199],[-2.199,0],[0,-2.197],[-2.198,0],[0,2.199],[-2.199,0],[0,-2.197],[-2.199,0],[0,2.199],[-2.198,0],[0,-2.197],[-2.199,0],[0,0],[0,0]],"v":[[31.835,-3.98],[31.835,-0.001],[27.855,3.98],[23.875,-0.001],[19.896,-3.98],[15.917,-0.001],[11.938,3.98],[7.958,-0.001],[3.979,-3.98],[-0.001,-0.001],[-3.979,3.98],[-7.958,-0.001],[-11.938,-3.98],[-15.918,-0.001],[-19.897,3.98],[-23.876,-0.001],[-27.855,-3.98],[-31.835,-0.001],[-31.835,3.98]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.5,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":127,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":167,"s":[0]},{"t":201,"s":[0]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":3,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[231.757,5.23],"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":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":101,"op":462,"st":101,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 15 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[100.431,81.707,0],"ix":2},"a":{"a":0,"k":[51.903,49.105,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,1.289],[0,0],[-1.289,0],[0,-1.289],[0,0],[1.289,0]],"o":[[0,0],[0,-1.289],[1.289,0],[0,0],[0,1.289],[-1.289,0]],"v":[[-2.334,3.423],[-2.334,-3.423],[0,-5.757],[2.334,-3.423],[2.334,3.423],[0,5.757]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[52.485,10.593],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":100,"s":[0,0]},{"t":110,"s":[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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.039,0],[0,0],[0,3.039],[0,0],[-3.04,0],[0,0],[0,-3.039],[0,0]],"o":[[0,0],[-3.04,0],[0,0],[0,-3.039],[0,0],[3.039,0],[0,0],[0,3.039]],"v":[[30.085,5.636],[-30.084,5.636],[-35.588,0.133],[-35.588,-0.133],[-30.084,-5.636],[30.085,-5.636],[35.588,-0.133],[35.588,0.133]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[52.485,80.241],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":96,"s":[0,0]},{"t":106,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.484,-10.622],[0,0],[1.096,11.052],[0,0],[-15.26,0],[0,-15.261],[0,0]],"o":[[0,0],[3.546,-10.525],[0,0],[0,-15.261],[15.261,0],[0,0],[-1.146,11.472]],"v":[[30.811,36.558],[-30.811,36.558],[-27.094,3.822],[-28.358,-8.926],[-0.727,-36.558],[26.904,-8.926],[25.724,2.889]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.213,49.319],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":91,"s":[0,0]},{"t":101,"s":[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":"Group 7","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.265,2.994],[0,0],[-0.308,-3.115],[0,0],[4.301,0],[0,4.301],[0,0]],"o":[[0,0],[-1,2.967],[0,0],[0,4.301],[-4.302,0],[0,0],[0.323,-3.234]],"v":[[-8.686,-39.444],[8.686,-39.444],[7.637,28.06],[7.995,31.655],[0.206,39.444],[-7.583,31.655],[-7.251,28.323]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[52.485,19.517],"ix":2},"a":{"a":0,"k":[0,-39],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":100,"s":[0,0]},{"t":110,"s":[100,100]}],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.218],"y":[1]},"o":{"x":[0.894],"y":[0]},"t":113,"s":[-12]},{"t":144,"s":[10]}],"ix":6,"x":"var $bm_rt;\n$bm_rt = loopOut('pingPong');"},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.415,5.442]],"o":[[-0.723,-9.85],[0,0]],"v":[[-5.251,12.157],[5.975,-12.157]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.464,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[24.051,28.678],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":125,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":138,"s":[100,100]},{"t":166,"s":[100,100]}],"ix":3,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"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":"Group 3","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.047,-14.945]],"o":[[-11.09,8.975],[0,0]],"v":[[8.459,-19.307],[-5.412,19.307]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.927,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[15.776,26.624],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":153,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":166,"s":[100,100]},{"t":194,"s":[100,100]}],"ix":3,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"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":"Group 4","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[3.047,-14.945]],"o":[[11.089,8.975],[0,0]],"v":[[-8.459,-19.307],[5.412,19.307]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.927,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[88.029,26.624],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":153,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":166,"s":[100,100]},{"t":194,"s":[100,100]}],"ix":3,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"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":"Group 5","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[2.235,-10.435]],"o":[[7.696,6.356],[0,0]],"v":[[-5.837,-13.556],[3.602,13.556]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.464,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[80.17,28.125],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":125,"s":[0,0]},{"i":{"x":[0.833,0.833],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":138,"s":[100,100]},{"t":166,"s":[100,100]}],"ix":3,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"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":"Group 6","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":91,"op":452,"st":91,"bm":0},{"ddd":0,"ind":9,"ty":5,"nm":"2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[265.972,135.223,0],"ix":2},"a":{"a":0,"k":[-0.028,-3.777,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"t":{"d":{"k":[{"s":{"s":10,"f":"HelveticaLTStd-Cond","t":"2","j":2,"tr":0,"lh":12,"ls":0,"fc":[1,1,1]},"t":0}]},"p":{},"m":{"g":1,"a":{"a":0,"k":[0,0],"ix":2}},"a":[]},"ip":89,"op":450,"st":89,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 5 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[265.811,142.057,0],"ix":2},"a":{"a":0,"k":[28.548,26.627,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-5.077],[5.077,0],[0,5.077],[-5.078,0]],"o":[[0,5.077],[-5.078,0],[0,-5.077],[5.077,0]],"v":[[9.193,0],[0,9.193],[-9.193,0],[0,-9.193]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.548,19.851],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":91,"s":[0,0]},{"t":101,"s":[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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.936,0],[0,0],[0,-1.935],[0,0],[-1.935,0],[0,0],[0,0],[0,0],[0,0],[0,1.935],[0,0]],"o":[[0,0],[-1.935,0],[0,0],[0,1.935],[0,0],[0,0],[0,0],[0,0],[1.936,0],[0,0],[0,-1.935]],"v":[[23.507,-25.09],[-23.507,-25.09],[-27.01,-21.585],[-27.01,9.762],[-23.507,13.264],[-18.291,13.264],[-12.806,25.09],[-12.806,13.264],[23.507,13.264],[27.01,9.762],[27.01,-21.585]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.615,"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.548,26.627],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":86,"s":[0,0]},{"t":96,"s":[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":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":86,"op":447,"st":86,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 6 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[99.898,373.695,0],"ix":2},"a":{"a":0,"k":[28.548,26.627,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.432],[2.431,0],[0,2.433],[-2.433,0]],"o":[[0,2.433],[-2.433,0],[0,-2.432],[2.431,0]],"v":[[4.404,-0.001],[0.001,4.404],[-4.404,-0.001],[0.001,-4.404]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.065,20.576],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":94,"s":[0,0]},{"t":104,"s":[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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.432],[2.432,0],[0,2.433],[-2.432,0]],"o":[[0,2.433],[-2.432,0],[0,-2.432],[2.432,0]],"v":[[4.404,-0.001],[0,4.404],[-4.404,-0.001],[0,-4.404]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.08,20.576],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":91,"s":[0,0]},{"t":101,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.432],[2.431,0],[0,2.433],[-2.433,0]],"o":[[0,2.433],[-2.433,0],[0,-2.432],[2.431,0]],"v":[[4.404,-0.001],[0.001,4.404],[-4.404,-0.001],[0.001,-4.404]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.094,20.576],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":88,"s":[0,0]},{"t":98,"s":[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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.936,0],[0,0],[0,-1.935],[0,0],[-1.935,0],[0,0],[0,0],[0,0],[0,0],[0,1.935],[0,0]],"o":[[0,0],[-1.935,0],[0,0],[0,1.935],[0,0],[0,0],[0,0],[0,0],[1.936,0],[0,0],[0,-1.935]],"v":[[23.507,-25.09],[-23.507,-25.09],[-27.01,-21.585],[-27.01,9.762],[-23.507,13.265],[-18.291,13.265],[-12.805,25.09],[-12.805,13.265],[23.507,13.265],[27.01,9.762],[27.01,-21.585]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.615,"ix":5},"lc":1,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[28.548,26.627],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.211,0.211],"y":[1.151,1.151]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":83,"s":[0,0]},{"t":93,"s":[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":"Group 4","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":83,"op":444,"st":83,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Layer 14 Outlines 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[234.751,314.917,0],"ix":2},"a":{"a":0,"k":[73.815,21.678,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[124.432,7.59],[138.441,7.59]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90,"s":[0]},{"t":100,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 7","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[40.726,31.056],[138.441,31.056]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.029,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":84,"s":[0]},{"t":94,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 8","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[40.726,24.456],[138.441,24.456]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5.147,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":79,"s":[0]},{"t":89,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 9","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[40.726,14.466],[83.069,14.466]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":74,"s":[0]},{"t":84,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 10","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.023,0],[0,0],[0,2.024],[0,0],[-2.023,0],[0,0],[0,-2.024],[0,0]],"o":[[0,0],[-2.023,0],[0,0],[0,-2.024],[0,0],[2.023,0],[0,0],[0,2.024]],"v":[[7.504,11.168],[-7.504,11.168],[-11.168,7.503],[-11.168,-7.504],[-7.504,-11.168],[7.504,-11.168],[11.168,-7.504],[11.168,7.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.084,22.496],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.224,0.224],"y":[1.356,1.356]},"o":{"x":[0.506,0.506],"y":[0,0]},"t":68,"s":[0,0]},{"t":81,"s":[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":"Group 11","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.144,0],[0,0],[0,3.144],[0,0],[-3.144,0],[0,0],[0,-3.144],[0,0]],"o":[[0,0],[-3.144,0],[0,0],[0,-3.144],[0,0],[3.144,0],[0,0],[0,3.144]],"v":[[65.623,19.177],[-65.622,19.177],[-71.316,13.484],[-71.316,-13.484],[-65.622,-19.177],[65.623,-19.177],[71.316,-13.484],[71.316,13.484]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.815,21.678],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.168,0.168],"y":[1.147,1.147]},"o":{"x":[0.444,0.444],"y":[0,0]},"t":63,"s":[0,0]},{"t":76,"s":[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":"Group 12","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":63,"op":424,"st":63,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 14 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[149.751,224.917,0],"ix":2},"a":{"a":0,"k":[73.815,21.678,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[124.432,7.59],[138.441,7.59]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":71,"s":[0]},{"t":81,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 7","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[40.726,31.056],[138.441,31.056]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.029,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":65,"s":[0]},{"t":75,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 8","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[40.726,24.456],[138.441,24.456]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5.147,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0]},{"t":70,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":4,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 9","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[40.726,14.466],[83.069,14.466]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":55,"s":[0]},{"t":65,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 10","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.023,0],[0,0],[0,2.024],[0,0],[-2.023,0],[0,0],[0,-2.024],[0,0]],"o":[[0,0],[-2.023,0],[0,0],[0,-2.024],[0,0],[2.023,0],[0,0],[0,2.024]],"v":[[7.504,11.168],[-7.504,11.168],[-11.168,7.503],[-11.168,-7.504],[-7.504,-11.168],[7.504,-11.168],[11.168,-7.504],[11.168,7.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[22.084,22.496],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.224,0.224],"y":[1.356,1.356]},"o":{"x":[0.506,0.506],"y":[0,0]},"t":49,"s":[0,0]},{"t":62,"s":[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":"Group 11","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.144,0],[0,0],[0,3.144],[0,0],[-3.144,0],[0,0],[0,-3.144],[0,0]],"o":[[0,0],[-3.144,0],[0,0],[0,-3.144],[0,0],[3.144,0],[0,0],[0,3.144]],"v":[[65.623,19.177],[-65.622,19.177],[-71.316,13.484],[-71.316,-13.484],[-65.622,-19.177],[65.623,-19.177],[71.316,-13.484],[71.316,13.484]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.815,21.678],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.168,0.168],"y":[1.147,1.147]},"o":{"x":[0.444,0.444],"y":[0,0]},"t":44,"s":[0,0]},{"t":57,"s":[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":"Group 12","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":44,"op":405,"st":44,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 13 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,273.186,0],"ix":2},"a":{"a":0,"k":[68.322,117.465,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.867,0],[0,0],[0,2.867],[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0]],"o":[[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0],[2.867,0],[0,0],[0,2.867]],"v":[[62.881,16.706],[-62.881,16.706],[-68.072,11.516],[-68.072,-11.516],[-62.881,-16.706],[62.881,-16.706],[68.072,-11.516],[68.072,11.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[68.321,217.974],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.088,0.088],"y":[1.148,1.148]},"o":{"x":[0.53,0.53],"y":[0,0]},"t":45,"s":[0,0]},{"t":58,"s":[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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.867,0],[0,0],[0,2.867],[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0]],"o":[[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0],[2.867,0],[0,0],[0,2.867]],"v":[[62.881,16.706],[-62.881,16.706],[-68.072,11.516],[-68.072,-11.516],[-62.881,-16.706],[62.881,-16.706],[68.072,-11.516],[68.072,11.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[68.321,176.406],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.088,0.088],"y":[1.148,1.148]},"o":{"x":[0.53,0.53],"y":[0,0]},"t":39,"s":[0,0]},{"t":52,"s":[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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.867,0],[0,0],[0,2.867],[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0]],"o":[[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0],[2.867,0],[0,0],[0,2.867]],"v":[[62.881,16.706],[-62.881,16.706],[-68.072,11.516],[-68.072,-11.516],[-62.881,-16.706],[62.881,-16.706],[68.072,-11.516],[68.072,11.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[68.321,136.543],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.088,0.088],"y":[1.148,1.148]},"o":{"x":[0.53,0.53],"y":[0,0]},"t":34,"s":[0,0]},{"t":47,"s":[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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.867,0],[0,0],[0,2.867],[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0]],"o":[[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0],[2.867,0],[0,0],[0,2.867]],"v":[[62.881,16.706],[-62.881,16.706],[-68.072,11.516],[-68.072,-11.514],[-62.881,-16.706],[62.881,-16.706],[68.072,-11.514],[68.072,11.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[68.321,96.681],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.088,0.088],"y":[1.148,1.148]},"o":{"x":[0.53,0.53],"y":[0,0]},"t":28,"s":[0,0]},{"t":41,"s":[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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.867,0],[0,0],[0,2.867],[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0]],"o":[[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0],[2.867,0],[0,0],[0,2.867]],"v":[[62.881,16.706],[-62.881,16.706],[-68.072,11.516],[-68.072,-11.514],[-62.881,-16.706],[62.881,-16.706],[68.072,-11.514],[68.072,11.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[68.321,56.819],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.088,0.088],"y":[1.148,1.148]},"o":{"x":[0.53,0.53],"y":[0,0]},"t":22,"s":[0,0]},{"t":35,"s":[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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.867,0],[0,0],[0,2.867],[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0]],"o":[[0,0],[-2.867,0],[0,0],[0,-2.867],[0,0],[2.867,0],[0,0],[0,2.867]],"v":[[62.881,16.706],[-62.881,16.706],[-68.072,11.516],[-68.072,-11.514],[-62.881,-16.706],[62.881,-16.706],[68.072,-11.514],[68.072,11.516]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.722000002394,0.859000052658,0.910000011968,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[68.321,16.956],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.088,0.088],"y":[1.148,1.148]},"o":{"x":[0.53,0.53],"y":[0,0]},"t":17,"s":[0,0]},{"t":30,"s":[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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false}],"ip":17,"op":378,"st":17,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 7 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[187.5,270.986,0],"ix":2},"a":{"a":0,"k":[79.738,143.02,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-0.853],[0.852,0],[0,0.853],[-0.853,0]],"o":[[0,0.853],[-0.853,0],[0,-0.853],[0.852,0]],"v":[[1.544,0],[0,1.543],[-1.544,0],[0,-1.543]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[82.825,9.511],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-0.853],[0.853,0],[0,0.853],[-0.853,0]],"o":[[0,0.853],[-0.853,0],[0,-0.853],[0.853,0]],"v":[[1.544,0],[0,1.543],[-1.544,0],[0,-1.543]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187999994615,0.663000009574,0.875,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[77.423,9.511],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,4.688],[0,0],[-4.688,0],[0,0],[0,-4.688],[4.687,0],[0,0]],"o":[[0,0],[0,-4.688],[0,0],[4.687,0],[0,4.688],[0,0],[-4.688,0]],"v":[[-17.749,0],[-17.749,0],[-9.26,-8.489],[9.261,-8.489],[17.749,0],[9.261,8.489],[-9.26,8.489]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.738,8.739],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[79.738,8.739],"ix":2},"a":{"a":0,"k":[79.738,8.739],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.235,0.235],"y":[1,1]},"o":{"x":[0.584,0.584],"y":[0,0]},"t":15,"s":[0,0]},{"t":30,"s":[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":"Group 6","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.156,0],[0,0],[0,12.157],[0,0],[-12.156,0],[0,0],[0,-12.156],[0,0]],"o":[[0,0],[-12.156,0],[0,0],[0,-12.156],[0,0],[12.156,0],[0,0],[0,12.157]],"v":[[49.759,135.052],[-49.76,135.052],[-71.77,113.041],[-71.77,-113.041],[-49.76,-135.052],[49.759,-135.052],[71.771,-113.041],[71.771,113.041]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002394,0.913999968884,0.936999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.739,143.019],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0,0],"y":[1.163,1.163]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":7,"s":[0,0]},{"t":20,"s":[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":"Group 4","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,16.392],[0,0],[-16.393,0],[0,0],[0,-16.392],[0,0],[16.391,0]],"o":[[-16.393,0],[0,0],[0,-16.392],[0,0],[16.391,0],[0,0],[0,16.392],[0,0]],"v":[[-49.759,142.77],[-79.488,113.04],[-79.488,-113.041],[-49.759,-142.769],[49.761,-142.769],[79.488,-113.041],[79.488,113.04],[49.761,142.77]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.149000010771,0.226999993418,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[79.738,143.02],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.244,0.244],"y":[1.166,1.166]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":0,"s":[0,0]},{"t":14,"s":[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":"Group 5","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":361,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 8 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[180.179,233.899,0],"ix":2},"a":{"a":0,"k":[143.828,154.932,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[18.725,-4.688],[27.6,-22.552],[30.371,-20.687],[6.845,-0.69],[2.766,6.298],[-7.872,3.511],[-8.492,-1.477],[-76.234,-1.245],[-4.357,1.994],[0.188,4.787],[8.558,-0.909],[12.872,-7.61],[49.947,-29.524],[9.041,-1.446],[5.191,7.541],[-8.756,2.676],[-5.351,-2.43],[-38.348,-17.411],[-22.604,-2.593],[-15.496,16.658]],"o":[[-15.565,-11.416],[-34.574,8.657],[-28.454,23.253],[-5.686,3.873],[-6.844,0.69],[-3.466,-7.893],[7.872,-3.511],[75.118,13.065],[4.791,0.078],[4.356,-1.994],[-0.338,-8.6],[-14.87,1.577],[-49.948,29.524],[-7.882,4.659],[-9.041,1.444],[-5.193,-7.541],[5.62,-1.718],[38.348,17.411],[20.717,9.406],[22.603,2.595],[0,0]],"v":[[129.379,-142.267],[73.581,-147.059],[-21.212,-99.474],[-103.145,-25.905],[-121.848,-17.714],[-139.112,-26.336],[-128.914,-47.27],[-103.47,-48.341],[115.704,13.587],[129.805,11.527],[137.607,0.452],[117.609,-10.813],[76.479,6.159],[-73.364,94.733],[-98.41,105.586],[-122.941,96.886],[-116.67,74.135],[-99.744,77.326],[15.298,129.56],[79.758,151.087],[142.579,131.596]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.55338715198,0.748557595646,0.81568627451,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.5,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":3,"ix":1}},{"n":"g","nm":"gap","v":{"a":0,"k":3,"ix":2}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[143.828,154.933],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":100,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":85,"s":[100]},{"t":138,"s":[100]}],"ix":2,"x":"var $bm_rt;\n$bm_rt = loopOut('cycle');"},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":10,"op":371,"st":10,"bm":0}],"markers":[],"chars":[{"ch":"2","size":10,"style":"Condensed","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,11.078],[12.891,0],[2.316,-2.417],[0,-5.539],[0,0],[0,0],[-10.373,0],[0,-7.654],[5.841,-5.64],[0,0],[1.108,-2.618],[0.101,-5.438],[0,0],[0,0],[0,0],[-3.625,3.223]],"o":[[7.755,-7.05],[0,-12.488],[-8.459,0],[-3.424,4.33],[0,0],[0,0],[-0.201,-7.956],[8.56,0],[0,8.258],[0,0],[-2.216,2.115],[-2.216,5.338],[0,0],[0,0],[0,0],[0.201,-4.733],[0,0]],"v":[[32.126,-30.917],[44.312,-54.483],[24.875,-75.531],[9.869,-69.589],[5.035,-54.483],[5.035,-49.85],[13.394,-49.85],[24.472,-67.978],[35.651,-54.684],[27.795,-37.766],[13.394,-23.868],[7.452,-16.315],[4.431,0],[45.016,0],[45.016,-7.553],[13.092,-7.553],[18.53,-18.53]],"c":true},"ix":2},"nm":"2","mn":"ADBE Vector Shape - Group","hd":false}],"nm":"2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}]},"fFamily":"Helvetica LT Std"}]}
diff --git a/app/src/main/res/raw/sb_illustration.json b/app/src/main/res/raw/sb_illustration.json
new file mode 100644
index 000000000..d5cac9ef1
--- /dev/null
+++ b/app/src/main/res/raw/sb_illustration.json
@@ -0,0 +1 @@
+{"v":"4.8.0","meta":{"g":"LottieFiles AE ","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":150,"w":660,"h":450,"nm":"ui-ux-design-isometric","ddd":0,"assets":[{"id":"image_0","w":101,"h":159,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_1","w":108,"h":235,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_2","w":10,"h":11,"u":"","p":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAALCAYAAABGbhwYAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAAAZElEQVQYlX2QOwHAIAwFIwEJlVAJSEEKEioFCZVQCZVQB9cBhhBIbspw+byIKIATKBIxpI/O5UlJSYw67aSHlWrFupEAXisejsgSDMjO+nmqaigmFECOPqDvvp2PTrc3oIWi5QcDUM0RMPFlygAAAABJRU5ErkJggg==","e":1},{"id":"image_3","w":29,"h":42,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_4","w":30,"h":42,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_5","w":61,"h":61,"u":"","p":"data:image/png;base64,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","e":1},{"id":"image_6","w":202,"h":324,"u":"","p":"data:image/png;base64,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","e":1}],"layers":[{"ddd":0,"ind":1,"ty":2,"nm":"Layer 01","refId":"image_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":23,"s":[0]},{"t":43,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":23,"s":[347.351,228.422,0],"to":[8.649,4.843,0],"ti":[-8.649,-4.843,0]},{"t":43,"s":[399.243,257.481,0]}],"ix":2},"a":{"a":0,"k":[50.269,79.068,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"ip":23,"op":151,"st":-13,"bm":0},{"ddd":0,"ind":2,"ty":2,"nm":"Layer 02","refId":"image_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":33,"s":[0]},{"t":53,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":33,"s":[348.647,235.657,0],"to":[-7.092,-4.324,0],"ti":[7.092,4.324,0]},{"t":53,"s":[306.096,209.711,0]}],"ix":2},"a":{"a":0,"k":[53.834,117.011,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"ip":33,"op":151,"st":-3,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[196.5,214,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[-3.25,-0.75],[0,0],[0,0],[0.75,9.5],[0,0]],"o":[[0,0],[0,0],[3.25,0.75],[0,0],[0,0],[-0.75,-9.5],[0,0]],"v":[[83.5,67.25],[83.5,93.25],[87,104.75],[143.25,138],[147.25,140.25],[154.5,131.25],[154.75,100.75]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":2,"lj":1,"ml":25,"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":3,"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":100,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"t":50,"s":[100]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":50,"s":[0]},{"t":222,"s":[100]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":30,"op":151,"st":10,"bm":0},{"ddd":0,"ind":4,"ty":2,"nm":"Layer 04","refId":"image_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[390.072,339.431,0],"ix":2},"a":{"a":0,"k":[4.67,5.239,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":40,"s":[0,0,100]},{"t":45,"s":[125,125,100]}],"ix":6}},"ao":0,"ip":40,"op":151,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":2,"nm":"Layer 05","refId":"image_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[485.577,232.69000000000003,0],"ix":2},"a":{"a":0,"k":[14.471,20.736,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":38,"s":[0,0,100]},{"t":58,"s":[125,125,100]}],"ix":6}},"ao":0,"ip":38,"op":151,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":2,"nm":"Layer 06","refId":"image_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[208.432,199.012,0],"ix":2},"a":{"a":0,"k":[14.72,20.736,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":26,"s":[0,0,100]},{"t":46,"s":[125,125,100]}],"ix":6}},"ao":0,"ip":26,"op":151,"st":-10,"bm":0},{"ddd":0,"ind":7,"ty":2,"nm":"Layer 07","refId":"image_5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[0]},{"t":40,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":20,"s":[330.02,272.355,0],"to":[-4.324,3.286,0],"ti":[4.324,-3.286,0]},{"t":40,"s":[304.074,292.074,0]}],"ix":2},"a":{"a":0,"k":[30.498,30.227,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"ip":20,"op":151,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 08","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[334.53,330.236,0],"ix":2},"a":{"a":0,"k":[110.424,92.989,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":9,"s":[0,0,100]},{"t":29,"s":[125,125,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.718,0],[0,-5.324],[0,0],[-6.979,-4.03],[0,0],[-1.694,-0.001],[0,0],[-1.159,1.444],[0,2.683],[0,0],[6.98,4.03],[0,0]],"o":[[-4.08,0],[0,0],[0,8.007],[0,0],[1.934,1.116],[0,0],[1.948,0],[1.22,-1.52],[0,0],[0,-8.007],[0,0],[-1.961,-1.132]],"v":[[81.843,-84.351],[75.228,-75.72],[75.228,57.749],[87.886,79.58],[146.657,113.405],[152.202,115.112],[152.202,115.112],[156.951,112.904],[158.815,106.48],[158.815,-26.989],[146.158,-48.819],[87.387,-82.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[2.262,0],[0,0],[2.114,1.221],[0,0],[0,8.325],[0,0],[-4.626,0],[-2.114,-1.221],[0,0],[0,-8.326],[0,0],[1.364,-1.7]],"o":[[0,0],[-1.896,-0.001],[0,0],[-7.256,-4.19],[0,0],[0,-5.851],[1.895,0],[0,0],[7.256,4.189],[0,0],[0,2.912],[-1.354,1.689]],"v":[[152.202,116.112],[152.202,116.112],[146.158,114.271],[87.387,80.446],[74.228,57.749],[74.228,-75.72],[81.843,-85.351],[87.886,-83.512],[146.657,-49.685],[159.815,-26.989],[159.815,106.48],[157.73,113.53]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0,0.9686274509803922,0.33725490196078434,0.00784313725490196,0.337,0.9686274509803922,0.33725490196078434,0.00784313725490196,0.561,0.9686274509803922,0.33725490196078434,0.00784313725490196,0.78,0.9686274509803922,0.33725490196078434,0.00784313725490196,1,0.9686274509803922,0.33725490196078434,0.00784313725490196],"ix":9}},"s":{"a":0,"k":[101,107],"ix":5},"e":{"a":0,"k":[132.087,-77.639],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":151,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":2,"nm":"Layer 09","refId":"image_6","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"t":30,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[533.251,237.496,0],"to":[-22.14,0,0],"ti":[22.14,0,0]},{"t":30,"s":[400.41,237.496,0]}],"ix":2},"a":{"a":0,"k":[100.963,161.75,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"ip":0,"op":151,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Shape Layer 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[196.5,214,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.25,7.5],[0,0],[0,-13.25],[0,0],[-14.5,-5.25],[0,0],[0.5,10.75],[0,0]],"o":[[-12.25,-7.5],[0,0],[0,13.25],[0,0],[14.5,5.25],[0,0],[-0.483,-10.387],[0,0]],"v":[[160.75,-53],[147.25,-44.25],[147.25,42.25],[159.5,62.75],[219.25,97.25],[231.75,88.25],[231.25,-1.25],[217.75,-20]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.9686274509803922,0.33725490196078434,0.00784313725490196,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":3,"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[0]},{"t":51,"s":[100]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0]},{"t":222,"s":[100]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":31,"op":151,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Shape Layer 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[196.5,214,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[125,125,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[19.25,13.25],[0,0],[0,-13.25],[0,0],[-10,-5],[0,0],[-0.25,16],[0,0]],"o":[[-19.25,-13.25],[0,0],[0,13.25],[0,0],[10,5],[0,0],[0.25,-16],[0,0]],"v":[[28.5,-140.5],[10.5,-134.25],[10.25,9.5],[24.5,30.75],[81.5,63.5],[95,57.75],[95.25,-86.25],[77.5,-113]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.9686274509803922,0.33725490196078434,0.00784313725490196,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":1,"bm":0,"d":[{"n":"d","nm":"dash","v":{"a":0,"k":3,"ix":1}},{"n":"o","nm":"offset","v":{"a":0,"k":0,"ix":7}}],"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"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":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":31,"s":[0]},{"t":51,"s":[100]}],"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":51,"s":[0]},{"t":222,"s":[100]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":31,"op":151,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/app/src/main/res/raw/sound_illustration.json b/app/src/main/res/raw/sound_illustration.json
new file mode 100644
index 000000000..6f112cd2a
--- /dev/null
+++ b/app/src/main/res/raw/sound_illustration.json
@@ -0,0 +1 @@
+{"v":"4.8.0","meta":{"g":"LottieFiles AE ","a":"","k":"","d":"","tc":""},"fr":30,"ip":0,"op":151,"w":473,"h":473,"nm":"Girl listening podcast music","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 6 Outlines 15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[339.347,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":-7.007,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.403,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.283,36.051],[-6.788,37.241],[-5.598,37.736],[5.684,37.736],[6.874,37.241],[7.369,36.051],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.888,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.41,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.014,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.699,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.462,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23.904,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.868,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.309,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.033,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.637,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.441,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44.324,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.847,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.45,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55.135,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.899,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.34,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.304,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65.746,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.068,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.753,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.517,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77.958,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.922,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.363,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.691,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":95.495,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.378,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.901,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.106,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.548,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.271,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.875,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":119.68,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":122.563,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":125.085,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.129,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.733,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":137.538,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140.42,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":143.143,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151.151,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.283,36.051],[-6.788,37.241],[-5.598,37.736],[5.684,37.736],[6.874,37.241],[7.369,36.051],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-7.00700700700701,"op":153.153153153153,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 6 Outlines 14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[317.878,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.009,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.212,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.017,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":19.9,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.026,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.711,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34.474,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.916,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":39.88,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.321,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.045,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.649,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.336,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.859,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.462,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.147,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70.911,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.352,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.316,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77.758,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.08,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.765,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.97,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":93.934,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":95.375,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.099,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.703,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.508,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.39,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":112.913,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.118,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":119.56,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.283,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.887,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.692,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.575,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":137.097,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.141,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144.745,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":149.55,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":152.432,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155.155,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":159.56,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":163.563563563564,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-16.016016016016,"op":165.165165165165,"st":5.00500500500501,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 6 Outlines 13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[296.416,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-16.016,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-12.012,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-8.809,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1.121,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.69,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.895,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.859,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.3,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.024,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.628,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.432,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.315,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.838,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.441,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.126,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.89,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51.331,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55.295,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.737,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.059,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.744,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.508,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.949,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.913,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.354,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.078,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.682,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.486,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.369,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.892,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.097,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.539,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.262,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105.866,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.671,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.554,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116.076,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":120.12,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.724,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.411,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.134,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":138.539,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":142.542542542543,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-16.016016016016,"op":153.153153153153,"st":-16.016016016016,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 6 Outlines 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[274.943,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-15.015,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-11.411,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-10.01,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-7.808,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.003,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-0.12,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2.402,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.006,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.691,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.454,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15.896,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":19.86,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.301,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.025,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":28.629,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.433,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.316,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":38.839,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42.442,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.127,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.891,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52.332,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.296,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.738,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.06,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.745,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.509,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":69.95,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73.914,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.355,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.079,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.683,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.487,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.37,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92.893,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.098,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.54,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.263,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.867,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.672,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117.077,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.121,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.725,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.53,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.412,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":135.135,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143.143,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":144.544544544545,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-15.015015015015,"op":153.153153153153,"st":-15.015015015015,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 6 Outlines 16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[232.03,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-26.026,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-22.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-18.819,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-14.014,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-11.131,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-8.609,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-0.32,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3.443,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4.885,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.849,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.29,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.014,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.618,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.305,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.828,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.431,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.116,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":39.88,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.321,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.285,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.727,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.049,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.734,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.497,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.939,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.344,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.068,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.672,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.476,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.359,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.882,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92.252,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":95.856,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.661,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.544,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.066,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.11,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.714,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.519,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.124,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":128.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":132.132,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.134,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":138.178,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.782,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":146.587,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":149.469,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":152.192,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":156.596596596597,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-26.026026026026,"op":153.153153153153,"st":-26.026026026026,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 6 Outlines 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[253.492,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3.203,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.008,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.891,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.413,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.017,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.702,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.465,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.907,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.871,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.312,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.036,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":39.64,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44.444,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.327,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.85,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.138,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":61.902,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.343,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.307,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.749,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.071,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.756,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.52,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.961,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.925,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.366,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.09,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":93.694,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.498,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":101.381,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.904,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109.109,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.551,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.274,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117.878,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":122.683,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":125.566,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.088,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.132,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":135.736,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140.541,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.423,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":146.146,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.551,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-4.004004004004,"op":156.156156156156,"st":-4.004004004004,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 6 Outlines 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[210.562,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-6.006,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-2.402,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.297,21.798],[-6.802,22.988],[-5.612,23.483],[5.67,23.483],[6.86,22.988],[7.355,21.798],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1.201,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.006,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.889,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.411,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15.015,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":19.7,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23.463,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.905,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":28.869,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.31,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34.034,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.638,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42.442,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.325,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.848,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51.451,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.136,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.9,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":61.341,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65.305,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":66.747,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":69.069,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73.754,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77.518,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.959,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.923,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.364,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.088,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.692,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":96.496,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.379,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":101.902,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.107,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108.549,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":112.272,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":115.876,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":120.681,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.564,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.086,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":130.13,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":133.734,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":138.539,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.421,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":144.144,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152.152,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.297,21.798],[-6.802,22.988],[-5.612,23.483],[5.67,23.483],[6.86,22.988],[7.355,21.798],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-6.00600600600601,"op":154.154154154154,"st":-6.00600600600601,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 6 Outlines 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[189.116,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.003,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0.601,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4.204,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.009,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.892,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.414,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.018,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.703,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.466,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.908,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.872,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.313,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.037,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":40.641,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.445,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.328,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.851,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54.454,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.139,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.344,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.308,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":69.75,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.072,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.757,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.521,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.962,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.926,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.367,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.091,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94.695,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.499,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.382,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.905,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.11,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.552,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":115.275,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.879,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.684,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.567,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.089,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":133.133,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136.737,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.542,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144.424,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":147.147,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-3.003003003003,"op":157.157157157157,"st":-3.003003003003,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 6 Outlines 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[167.643,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-16.016,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-12.012,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-8.809,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1.121,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.69,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.895,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.859,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.3,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.024,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.628,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.432,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.315,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.838,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.441,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.126,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.89,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51.331,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55.295,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.737,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.059,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.744,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.508,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.949,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.913,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.354,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.078,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.682,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.486,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.369,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.892,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.097,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.539,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.262,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105.866,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.671,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.554,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116.076,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":120.12,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.724,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.411,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.134,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":138.138,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":142.542542542543,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-16.016016016016,"op":153.153153153153,"st":-16.016016016016,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 6 Outlines 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[146.188,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":-7.007,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.403,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.283,36.051],[-6.788,37.241],[-5.598,37.736],[5.684,37.736],[6.874,37.241],[7.369,36.051],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.888,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.41,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.014,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.699,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.462,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23.904,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.868,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.309,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.033,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.637,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.441,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44.324,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.847,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.45,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55.135,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.899,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.34,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.304,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65.746,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.068,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.753,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.517,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77.958,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.922,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.363,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.691,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":95.495,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.378,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.901,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.106,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.548,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.271,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.875,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":119.68,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":122.563,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":125.085,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.129,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.733,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":137.538,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140.42,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.143,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.283,36.051],[-6.788,37.241],[-5.598,37.736],[5.684,37.736],[6.874,37.241],[7.369,36.051],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-7.00700700700701,"op":153.153153153153,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 6 Outlines 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[124.709,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2.202,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.007,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.89,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.412,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.016,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.701,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.464,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.906,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.87,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.311,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.035,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":38.639,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.443,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.326,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.849,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52.452,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.137,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.901,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.342,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":66.306,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.748,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70.07,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.755,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.519,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.96,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.924,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.365,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.089,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92.693,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.497,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.38,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108.108,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109.55,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.273,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116.877,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.682,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.565,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":127.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.131,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.735,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139.54,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":142.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":145.145,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153.153,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-5.00500500500501,"op":155.155155155155,"st":-5.00500500500501,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Layer 6 Outlines 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[103.267,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.003,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0.601,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4.204,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.009,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.892,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.414,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.018,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.703,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.466,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.908,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.872,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.313,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.037,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":40.641,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.445,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.328,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.851,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54.454,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.139,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.344,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.308,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":69.75,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.072,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.757,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.521,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.962,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.926,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.367,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.091,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94.695,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.499,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.382,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.905,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.11,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.552,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":115.275,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.879,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.684,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.567,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.089,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":133.133,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136.737,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.542,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144.424,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":147.147,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151.552,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-3.003003003003,"op":157.157157157157,"st":-3.003003003003,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 6 Outlines 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81.785,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2.202,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.007,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.89,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.412,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.016,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.701,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.464,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.906,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.87,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.311,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.035,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":38.639,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.443,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.326,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.849,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52.452,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.137,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.901,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.342,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":66.306,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.748,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70.07,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.755,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.519,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.96,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.924,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.365,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.089,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92.693,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.497,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.38,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108.108,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109.55,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.273,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116.877,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.682,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.565,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":127.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.131,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.735,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139.54,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":142.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":145.145,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153.153,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-5.00500500500501,"op":155.155155155155,"st":-5.00500500500501,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 6 Outlines 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60.333,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3.203,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.008,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.891,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.413,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.017,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.702,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.465,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.907,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.871,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.312,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.036,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":39.64,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44.444,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.327,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.85,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.138,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":61.902,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.343,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.307,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.749,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.071,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.756,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.52,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.961,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.925,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.366,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.09,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":93.694,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.498,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":101.381,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.904,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109.109,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.551,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.274,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117.878,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":122.683,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":125.566,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.088,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.132,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":135.736,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140.541,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.423,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":146.146,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.551,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-4.004004004004,"op":156.156156156156,"st":-4.004004004004,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 6 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[38.895,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":-8.008,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.404,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-0.801,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.28,22.152],[-6.785,23.342],[-5.595,23.837],[5.687,23.837],[6.877,23.342],[7.372,22.152],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.887,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.409,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.013,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.698,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.461,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.867,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":28.308,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.032,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.636,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":40.44,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.323,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.846,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.449,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54.134,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.898,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.339,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.303,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.745,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.067,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.752,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.516,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.957,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.921,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.362,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.086,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.69,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94.494,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.377,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.9,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105.105,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.547,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.27,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.874,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.679,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.562,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.084,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.128,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.732,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136.537,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139.419,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":142.142,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153.754,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.28,22.152],[-6.785,23.342],[-5.595,23.837],[5.687,23.837],[6.877,23.342],[7.372,22.152],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-8.00800800800801,"op":152.152152152152,"st":-8.00800800800801,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 6 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[17.41,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3.604,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.207,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.012,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.895,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.417,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.021,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.706,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.469,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.911,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34.875,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.316,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":40.04,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.644,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.448,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51.331,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.854,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.457,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.142,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65.906,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.347,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.311,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.753,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.075,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.76,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.524,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.965,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.929,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.37,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94.094,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.698,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.503,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105.385,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.908,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.113,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.278,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.882,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.687,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.57,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.092,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136.136,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139.74,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144.545,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":147.427,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294117647,0.941176470588,0.952941176471,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":160.16016016016,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 6 Outlines 15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[339.347,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":-7.007,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.403,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.283,36.051],[-6.788,37.241],[-5.598,37.736],[5.684,37.736],[6.874,37.241],[7.369,36.051],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.888,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.41,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.014,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.699,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.462,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23.904,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.868,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.309,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.033,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.637,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.441,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44.324,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.847,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.45,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55.135,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.899,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.34,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.304,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65.746,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.068,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.753,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.517,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77.958,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.922,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.363,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.691,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":95.495,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.378,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.901,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.106,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.548,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.271,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.875,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":119.68,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":122.563,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":125.085,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.129,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.733,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":137.538,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140.42,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":143.143,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151.151,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.283,36.051],[-6.788,37.241],[-5.598,37.736],[5.684,37.736],[6.874,37.241],[7.369,36.051],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-7.00700700700701,"op":153.153153153153,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 6 Outlines 14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[317.878,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.009,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.212,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.017,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":19.9,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.026,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.711,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34.474,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.916,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":39.88,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.321,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.045,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.649,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.336,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.859,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.462,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.147,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70.911,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.352,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.316,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77.758,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.08,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.765,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.97,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":93.934,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":95.375,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.099,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.703,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.508,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.39,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":112.913,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.118,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":119.56,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.283,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.887,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.692,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.575,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":137.097,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.141,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144.745,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":149.55,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":152.432,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":155.155,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":159.56,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":163.563563563564,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-16.016016016016,"op":165.165165165165,"st":5.00500500500501,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 6 Outlines 13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[296.416,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-16.016,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-12.012,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-8.809,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1.121,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.69,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.895,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.859,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.3,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.024,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.628,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.432,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.315,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.838,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.441,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.126,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.89,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51.331,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55.295,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.737,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.059,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.744,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.508,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.949,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.913,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.354,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.078,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.682,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.486,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.369,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.892,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.097,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.539,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.262,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105.866,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.671,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.554,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116.076,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":120.12,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.724,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.411,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.134,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":138.539,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":142.542542542543,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-16.016016016016,"op":153.153153153153,"st":-16.016016016016,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 6 Outlines 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[274.943,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-15.015,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-11.411,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-10.01,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-7.808,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.003,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-0.12,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2.402,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.006,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.691,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.454,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15.896,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":19.86,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.301,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.025,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":28.629,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.433,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.316,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":38.839,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42.442,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.127,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.891,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52.332,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.296,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.738,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.06,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.745,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.509,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":69.95,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73.914,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.355,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.079,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.683,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.487,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.37,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92.893,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.098,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.54,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.263,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.867,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.672,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117.077,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.121,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.725,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.53,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.412,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":135.135,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":143.143,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":144.544544544545,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-15.015015015015,"op":153.153153153153,"st":-15.015015015015,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 6 Outlines 16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[232.03,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-26.026,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-22.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-18.819,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-14.014,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-11.131,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-8.609,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-0.32,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3.443,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4.885,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.849,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.29,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.014,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.618,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.305,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.828,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.431,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.116,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":39.88,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.321,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.285,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.727,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.049,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.734,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.497,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.939,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.344,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.068,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.672,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.476,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.359,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.882,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92.252,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":95.856,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.661,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.544,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.066,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.11,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.714,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.519,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.124,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":128.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":132.132,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.134,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":138.178,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.782,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":146.587,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":149.469,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":152.192,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":156.596596596597,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-26.026026026026,"op":153.153153153153,"st":-26.026026026026,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 6 Outlines 11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[253.492,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3.203,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.008,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.891,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.413,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.017,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.702,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.465,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.907,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.871,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.312,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.036,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":39.64,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44.444,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.327,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.85,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.138,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":61.902,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.343,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.307,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.749,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.071,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.756,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.52,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.961,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.925,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.366,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.09,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":93.694,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.498,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":101.381,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.904,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109.109,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.551,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.274,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117.878,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":122.683,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":125.566,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.088,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.132,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":135.736,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140.541,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.423,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":146.146,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.551,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-4.004004004004,"op":156.156156156156,"st":-4.004004004004,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 6 Outlines 10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[210.562,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-6.006,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-2.402,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.297,21.798],[-6.802,22.988],[-5.612,23.483],[5.67,23.483],[6.86,22.988],[7.355,21.798],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1.201,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.006,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.889,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.411,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":15.015,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":19.7,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23.463,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.905,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":28.869,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.31,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34.034,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.638,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":42.442,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.325,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.848,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51.451,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.136,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.9,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":61.341,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65.305,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":66.747,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":69.069,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":73.754,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77.518,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.959,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.923,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.364,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.088,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.692,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":96.496,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.379,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":101.902,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.107,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108.549,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":112.272,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":115.876,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":120.681,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.564,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.086,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":130.13,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":133.734,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":138.539,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.421,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":144.144,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":152.152,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.297,21.798],[-6.802,22.988],[-5.612,23.483],[5.67,23.483],[6.86,22.988],[7.355,21.798],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-6.00600600600601,"op":154.154154154154,"st":-6.00600600600601,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 6 Outlines 9","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[189.116,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.003,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0.601,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4.204,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.009,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.892,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.414,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.018,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.703,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.466,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.908,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.872,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.313,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.037,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":40.641,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.445,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.328,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.851,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54.454,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.139,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.344,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.308,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":69.75,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.072,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.757,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.521,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.962,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.926,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.367,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.091,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94.695,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.499,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.382,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.905,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.11,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.552,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":115.275,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.879,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.684,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.567,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.089,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":133.133,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136.737,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.542,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144.424,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":147.147,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-3.003003003003,"op":157.157157157157,"st":-3.003003003003,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 6 Outlines 8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[167.643,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-16.016,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-12.012,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-8.809,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1.121,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":1.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.69,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.895,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.859,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.3,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.024,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.628,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.432,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.315,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.838,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.441,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.126,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.89,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51.331,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55.295,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":56.737,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.059,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.744,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.508,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.949,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.913,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.354,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.078,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.682,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.486,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.369,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.892,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.097,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.539,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.262,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105.866,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.671,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.554,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116.076,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":120.12,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.724,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.529,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.411,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.134,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":138.138,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":142.542542542543,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-16.016016016016,"op":153.153153153153,"st":-16.016016016016,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 6 Outlines 7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[146.188,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":-7.007,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.403,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.283,36.051],[-6.788,37.241],[-5.598,37.736],[5.684,37.736],[6.874,37.241],[7.369,36.051],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.888,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.41,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.014,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.699,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.462,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":23.904,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.868,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.309,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.033,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.637,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":41.441,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44.324,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.847,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.45,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":55.135,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.899,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.34,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.304,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65.746,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.068,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.753,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.517,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":77.958,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.922,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.363,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.691,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":95.495,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.378,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.901,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.106,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.548,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.271,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.875,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":119.68,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":122.563,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":125.085,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.129,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.733,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":137.538,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140.42,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.143,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.283,36.051],[-6.788,37.241],[-5.598,37.736],[5.684,37.736],[6.874,37.241],[7.369,36.051],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-7.00700700700701,"op":153.153153153153,"st":-7.00700700700701,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 6 Outlines 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[124.709,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2.202,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.007,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.89,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.412,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.016,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.701,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.464,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.906,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.87,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.311,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.035,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":38.639,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.443,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.326,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.849,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52.452,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.137,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.901,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.342,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":66.306,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.748,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70.07,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.755,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.519,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.96,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.924,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.365,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.089,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92.693,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.497,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.38,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108.108,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109.55,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.273,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116.877,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.682,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.565,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":127.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.131,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.735,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139.54,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":142.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":145.145,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153.153,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-5.00500500500501,"op":155.155155155155,"st":-5.00500500500501,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Layer 6 Outlines 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[103.267,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-3.003,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0.601,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4.204,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.009,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":11.892,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.414,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":18.018,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.703,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.466,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":27.908,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.872,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":33.313,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":37.037,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":40.641,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.445,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.328,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":50.851,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54.454,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.139,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.344,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.308,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":69.75,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.072,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.757,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.521,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":81.962,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.926,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":87.367,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":91.091,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94.695,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.499,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.382,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":104.905,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.11,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":111.552,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":115.275,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.879,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":123.684,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.567,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.089,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":133.133,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136.737,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":141.542,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144.424,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":147.147,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":151.552,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.316,25.694],[-6.821,26.884],[-5.631,27.379],[5.651,27.379],[6.841,26.884],[7.336,25.694],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-3.003003003003,"op":157.157157157157,"st":-3.003003003003,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 6 Outlines 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[81.785,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-5.005,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-1.401,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":2.202,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.007,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.89,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.412,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":16.016,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":20.701,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":24.464,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.906,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.87,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":31.311,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.035,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":38.639,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.443,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":46.326,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.849,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":52.452,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.137,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":60.901,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.342,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":66.306,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.748,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":70.07,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":74.755,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":78.519,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.96,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.924,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":85.365,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.089,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":92.693,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.497,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":100.38,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":108.108,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109.55,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.273,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":116.877,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.682,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.565,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":127.087,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.131,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":134.735,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139.54,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":142.422,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":145.145,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153.153,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.304,25.27],[-6.809,26.46],[-5.619,26.955],[5.663,26.955],[6.853,26.46],[7.348,25.27],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-5.00500500500501,"op":155.155155155155,"st":-5.00500500500501,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 6 Outlines 3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[60.333,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3.203,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":8.008,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":10.891,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.413,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.017,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.702,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.465,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.907,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.871,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.312,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.036,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":39.64,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":44.444,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":47.327,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.85,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.453,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":58.138,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":61.902,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.343,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.307,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":68.749,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.071,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.756,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.52,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.961,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.925,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.366,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.09,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":93.694,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":98.498,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":101.381,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":103.904,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":109.109,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.551,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.274,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":117.878,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":122.683,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":125.566,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.088,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.132,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":135.736,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":140.541,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":143.423,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":146.146,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.551,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-4.004004004004,"op":156.156156156156,"st":-4.004004004004,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 6 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[38.895,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0.167},"t":-8.008,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-4.404,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":-0.801,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.28,22.152],[-6.785,23.342],[-5.595,23.837],[5.687,23.837],[6.877,23.342],[7.372,22.152],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":4.004,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":6.887,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":9.409,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13.013,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.698,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.461,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":22.903,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":26.867,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":28.308,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":32.032,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":35.636,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":40.44,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.323,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":45.846,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.449,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":54.134,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.898,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59.339,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":63.303,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":64.745,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.067,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.752,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.516,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":76.957,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":80.921,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":82.362,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":86.086,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":89.69,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94.494,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.377,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":99.9,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105.105,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":106.547,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":110.27,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.874,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.679,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.562,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":124.084,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":128.128,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":131.732,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136.537,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139.419,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":142.142,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":153.754,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.28,22.152],[-6.785,23.342],[-5.595,23.837],[5.687,23.837],[6.877,23.342],[7.372,22.152],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":-8.00800800800801,"op":152.152152152152,"st":-8.00800800800801,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 6 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[17.41,9.165,0],"ix":2},"a":{"a":0,"k":[7.576,5.441,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":3.604,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":7.207,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":12.012,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":14.895,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":17.417,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":21.021,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":25.706,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":29.469,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":30.911,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":34.875,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":36.316,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":40.04,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.644,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":48.448,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51.331,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":53.854,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":57.457,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":62.142,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":65.906,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":67.347,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":71.311,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":72.753,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":75.075,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,16.881],[-6.794,18.071],[-5.604,18.567],[5.678,18.567],[6.868,18.071],[7.363,16.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":79.76,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,0.381],[-6.744,1.571],[-5.554,2.067],[5.728,2.067],[6.918,1.571],[7.413,0.381],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":83.524,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.139,56.131],[-6.644,57.321],[-5.454,57.817],[5.828,57.817],[7.018,57.321],[7.513,56.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":84.965,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.185,25.881],[-6.69,27.071],[-5.5,27.567],[5.782,27.567],[6.972,27.071],[7.467,25.881],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":88.929,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":90.37,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":94.094,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":97.698,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":102.503,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":105.385,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":107.908,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":113.113,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.282,10.631],[-6.787,11.821],[-5.597,12.317],[5.685,12.317],[6.875,11.821],[7.37,10.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":114.555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.225,19.631],[-6.73,20.821],[-5.54,21.317],[5.742,21.317],[6.932,20.821],[7.427,19.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":118.278,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":121.882,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":126.687,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":129.57,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":132.092,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,24.631],[-6.819,25.821],[-5.629,26.317],[5.653,26.317],[6.843,25.821],[7.338,24.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":136.136,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.314,30.131],[-6.819,31.321],[-5.629,31.817],[5.653,31.817],[6.843,31.321],[7.339,30.131],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":139.74,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.289,17.631],[-6.794,18.821],[-5.604,19.317],[5.678,19.317],[6.868,18.821],[7.363,17.631],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":144.545,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.239,44.756],[-6.744,45.946],[-5.554,46.442],[5.728,46.442],[6.918,45.946],[7.413,44.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":147.427,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.264,1.756],[-6.769,2.946],[-5.579,3.442],[5.703,3.442],[6.893,2.946],[7.388,1.756],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.333,"y":0},"t":150.15,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.305,11.354],[-6.81,12.544],[-5.62,13.039],[5.662,13.039],[6.852,12.544],[7.347,11.354],[7.326,-5.192],[-7.326,-5.192]],"c":true}]},{"t":154.554554554555,"s":[{"i":[[0,0],[-0.316,-0.315],[-0.446,-0.001],[0,0],[-0.316,0.316],[-0.002,0.447],[0,0],[0,0]],"o":[[0.001,0.447],[0.316,0.316],[0,0],[0.446,-0.001],[0.315,-0.315],[0,0],[0,0],[0,0]],"v":[[-7.326,3.506],[-6.831,4.696],[-5.641,5.192],[5.641,5.192],[6.831,4.696],[7.326,3.506],[7.326,-5.192],[-7.326,-5.192]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.882353001015,0.192156877705,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.576,5.442],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":160.16016016016,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 4 Outlines 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":115,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":126.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":140.739,"s":[100]},{"t":151.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":115,"s":[332.814,166.316,0],"to":[0,-5.667,0],"ti":[0,5.667,0]},{"t":147.0322265625,"s":[332.814,132.316,0]}],"ix":2},"a":{"a":0,"k":[39.869,19.257,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.093,0.083],[0,0],[0.168,0.026],[0.155,-0.069],[0.092,-0.142],[0,-0.17],[0,0],[-0.092,-0.143],[-0.155,-0.07],[-0.168,0.026],[-0.127,0.113],[0,0],[-0.051,0.113],[0,0.124],[0.051,0.113]],"o":[[0,0],[-0.127,-0.113],[-0.168,-0.026],[-0.155,0.07],[-0.092,0.143],[0,0],[0,0.17],[0.092,0.143],[0.155,0.07],[0.168,-0.026],[0,0],[0.093,-0.082],[0.051,-0.114],[0,-0.125],[-0.051,-0.114]],"v":[[4.137,-0.659],[-2.967,-6.967],[-3.418,-7.18],[-3.913,-7.112],[-4.29,-6.788],[-4.432,-6.309],[-4.432,6.309],[-4.29,6.788],[-3.913,7.113],[-3.418,7.18],[-2.967,6.967],[4.137,0.659],[4.355,0.362],[4.432,0.001],[4.355,-0.361]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.216,17.554],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[10.431,0],[0,0],[0,-10.43],[0.924,-1.166],[1.014,-0.563],[1.781,-0.169],[-0.562,-0.114],[-1.919,-0.235],[-0.921,-0.794],[-0.253,-0.318],[-5.834,-0.761],[-1.231,0.006],[-1.738,-0.052],[-3.142,0],[0,0],[0,10.431]],"o":[[0,0],[-10.431,0],[0,1.433],[-0.728,0.903],[-1.559,0.876],[0.546,-0.052],[1.899,0.384],[1.207,0.148],[0.3,0.273],[3.663,4.359],[1.222,0.147],[1.739,0.009],[3.141,0.095],[0,0],[10.431,0],[0,-10.43]],"v":[[20.654,-19.007],[-11.965,-19.007],[-30.93,-0.043],[-31.868,3.243],[-34.506,5.462],[-39.619,6.958],[-37.574,7.5],[-31.842,8.32],[-28.471,9.568],[-27.64,10.456],[-14.41,18.712],[-10.727,18.924],[-5.512,18.912],[3.919,18.922],[20.654,18.922],[39.619,-0.043]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.388235324037,0.925490255917,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.869,19.257],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":115,"op":151,"st":115,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 4 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":59,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":70.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":84.739,"s":[100]},{"t":95.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":59,"s":[332.814,166.316,0],"to":[0,-5.667,0],"ti":[0,5.667,0]},{"t":91.0322265625,"s":[332.814,132.316,0]}],"ix":2},"a":{"a":0,"k":[39.869,19.257,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.093,0.083],[0,0],[0.168,0.026],[0.155,-0.069],[0.092,-0.142],[0,-0.17],[0,0],[-0.092,-0.143],[-0.155,-0.07],[-0.168,0.026],[-0.127,0.113],[0,0],[-0.051,0.113],[0,0.124],[0.051,0.113]],"o":[[0,0],[-0.127,-0.113],[-0.168,-0.026],[-0.155,0.07],[-0.092,0.143],[0,0],[0,0.17],[0.092,0.143],[0.155,0.07],[0.168,-0.026],[0,0],[0.093,-0.082],[0.051,-0.114],[0,-0.125],[-0.051,-0.114]],"v":[[4.137,-0.659],[-2.967,-6.967],[-3.418,-7.18],[-3.913,-7.112],[-4.29,-6.788],[-4.432,-6.309],[-4.432,6.309],[-4.29,6.788],[-3.913,7.113],[-3.418,7.18],[-2.967,6.967],[4.137,0.659],[4.355,0.362],[4.432,0.001],[4.355,-0.361]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.216,17.554],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[10.431,0],[0,0],[0,-10.43],[0.924,-1.166],[1.014,-0.563],[1.781,-0.169],[-0.562,-0.114],[-1.919,-0.235],[-0.921,-0.794],[-0.253,-0.318],[-5.834,-0.761],[-1.231,0.006],[-1.738,-0.052],[-3.142,0],[0,0],[0,10.431]],"o":[[0,0],[-10.431,0],[0,1.433],[-0.728,0.903],[-1.559,0.876],[0.546,-0.052],[1.899,0.384],[1.207,0.148],[0.3,0.273],[3.663,4.359],[1.222,0.147],[1.739,0.009],[3.141,0.095],[0,0],[10.431,0],[0,-10.43]],"v":[[20.654,-19.007],[-11.965,-19.007],[-30.93,-0.043],[-31.868,3.243],[-34.506,5.462],[-39.619,6.958],[-37.574,7.5],[-31.842,8.32],[-28.471,9.568],[-27.64,10.456],[-14.41,18.712],[-10.727,18.924],[-5.512,18.912],[3.919,18.922],[20.654,18.922],[39.619,-0.043]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.388235324037,0.925490255917,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.869,19.257],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":59,"op":95,"st":59,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 4 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":13,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":38.739,"s":[100]},{"t":49.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":13,"s":[332.814,166.316,0],"to":[0,-5.667,0],"ti":[0,5.667,0]},{"t":45.0322265625,"s":[332.814,132.316,0]}],"ix":2},"a":{"a":0,"k":[39.869,19.257,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.093,0.083],[0,0],[0.168,0.026],[0.155,-0.069],[0.092,-0.142],[0,-0.17],[0,0],[-0.092,-0.143],[-0.155,-0.07],[-0.168,0.026],[-0.127,0.113],[0,0],[-0.051,0.113],[0,0.124],[0.051,0.113]],"o":[[0,0],[-0.127,-0.113],[-0.168,-0.026],[-0.155,0.07],[-0.092,0.143],[0,0],[0,0.17],[0.092,0.143],[0.155,0.07],[0.168,-0.026],[0,0],[0.093,-0.082],[0.051,-0.114],[0,-0.125],[-0.051,-0.114]],"v":[[4.137,-0.659],[-2.967,-6.967],[-3.418,-7.18],[-3.913,-7.112],[-4.29,-6.788],[-4.432,-6.309],[-4.432,6.309],[-4.29,6.788],[-3.913,7.113],[-3.418,7.18],[-2.967,6.967],[4.137,0.659],[4.355,0.362],[4.432,0.001],[4.355,-0.361]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.216,17.554],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[10.431,0],[0,0],[0,-10.43],[0.924,-1.166],[1.014,-0.563],[1.781,-0.169],[-0.562,-0.114],[-1.919,-0.235],[-0.921,-0.794],[-0.253,-0.318],[-5.834,-0.761],[-1.231,0.006],[-1.738,-0.052],[-3.142,0],[0,0],[0,10.431]],"o":[[0,0],[-10.431,0],[0,1.433],[-0.728,0.903],[-1.559,0.876],[0.546,-0.052],[1.899,0.384],[1.207,0.148],[0.3,0.273],[3.663,4.359],[1.222,0.147],[1.739,0.009],[3.141,0.095],[0,0],[10.431,0],[0,-10.43]],"v":[[20.654,-19.007],[-11.965,-19.007],[-30.93,-0.043],[-31.868,3.243],[-34.506,5.462],[-39.619,6.958],[-37.574,7.5],[-31.842,8.32],[-28.471,9.568],[-27.64,10.456],[-14.41,18.712],[-10.727,18.924],[-5.512,18.912],[3.919,18.922],[20.654,18.922],[39.619,-0.043]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.388235324037,0.925490255917,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.869,19.257],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":13,"op":49,"st":13,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 8 Outlines 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":103,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":114.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":128.739,"s":[100]},{"t":139.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":103,"s":[318.632,95.983,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":139,"s":[318.632,58.983,0]}],"ix":2},"a":{"a":0,"k":[18.388,18.549,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.895,0.884],[2.673,0.535],[2.762,0.518],[-1.38,-5.603],[0.688,-1.823],[0.941,0.276],[1.58,-5.541],[0.043,-0.317],[-4.571,1.338],[2.829,7.616],[0.411,0.042],[-2.38,-0.485],[-1.906,-1.115],[-0.83,-1.179],[-0.275,-1.415],[1.104,2.11]],"o":[[-2.608,-0.796],[-2.755,-0.551],[2.898,4.991],[0.466,1.892],[-0.947,0.67],[-4.912,-1.444],[-0.088,0.308],[-0.911,6.866],[11.88,-3.478],[-0.196,-0.528],[2.416,0.249],[2.164,0.44],[1.24,0.736],[0.83,1.179],[0.441,-2.339],[-1.403,-2.681]],"v":[[9.71,-14.812],[1.754,-16.695],[-6.521,-18.299],[-0.071,-2.326],[0.073,3.426],[-2.595,3.347],[-17.03,9.367],[-17.227,10.305],[-1.336,16.961],[1.165,-8.174],[-0.695,-12.956],[6.485,-11.737],[12.764,-9.724],[15.904,-6.819],[17.58,-2.884],[17.034,-9.869]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.941176530427,0.952941236309,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.388,18.549],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":103,"op":139,"st":103,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 8 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":67.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":81.739,"s":[100]},{"t":92.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":56,"s":[318.632,95.983,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":92,"s":[318.632,58.983,0]}],"ix":2},"a":{"a":0,"k":[18.388,18.549,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.895,0.884],[2.673,0.535],[2.762,0.518],[-1.38,-5.603],[0.688,-1.823],[0.941,0.276],[1.58,-5.541],[0.043,-0.317],[-4.571,1.338],[2.829,7.616],[0.411,0.042],[-2.38,-0.485],[-1.906,-1.115],[-0.83,-1.179],[-0.275,-1.415],[1.104,2.11]],"o":[[-2.608,-0.796],[-2.755,-0.551],[2.898,4.991],[0.466,1.892],[-0.947,0.67],[-4.912,-1.444],[-0.088,0.308],[-0.911,6.866],[11.88,-3.478],[-0.196,-0.528],[2.416,0.249],[2.164,0.44],[1.24,0.736],[0.83,1.179],[0.441,-2.339],[-1.403,-2.681]],"v":[[9.71,-14.812],[1.754,-16.695],[-6.521,-18.299],[-0.071,-2.326],[0.073,3.426],[-2.595,3.347],[-17.03,9.367],[-17.227,10.305],[-1.336,16.961],[1.165,-8.174],[-0.695,-12.956],[6.485,-11.737],[12.764,-9.724],[15.904,-6.819],[17.58,-2.884],[17.034,-9.869]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.941176530427,0.952941236309,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.388,18.549],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":56,"op":92,"st":56,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 8 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":11.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":25.739,"s":[100]},{"t":36.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":0,"s":[318.632,95.983,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":36,"s":[318.632,58.983,0]}],"ix":2},"a":{"a":0,"k":[18.388,18.549,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.895,0.884],[2.673,0.535],[2.762,0.518],[-1.38,-5.603],[0.688,-1.823],[0.941,0.276],[1.58,-5.541],[0.043,-0.317],[-4.571,1.338],[2.829,7.616],[0.411,0.042],[-2.38,-0.485],[-1.906,-1.115],[-0.83,-1.179],[-0.275,-1.415],[1.104,2.11]],"o":[[-2.608,-0.796],[-2.755,-0.551],[2.898,4.991],[0.466,1.892],[-0.947,0.67],[-4.912,-1.444],[-0.088,0.308],[-0.911,6.866],[11.88,-3.478],[-0.196,-0.528],[2.416,0.249],[2.164,0.44],[1.24,0.736],[0.83,1.179],[0.441,-2.339],[-1.403,-2.681]],"v":[[9.71,-14.812],[1.754,-16.695],[-6.521,-18.299],[-0.071,-2.326],[0.073,3.426],[-2.595,3.347],[-17.03,9.367],[-17.227,10.305],[-1.336,16.961],[1.165,-8.174],[-0.695,-12.956],[6.485,-11.737],[12.764,-9.724],[15.904,-6.819],[17.58,-2.884],[17.034,-9.869]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.941176530427,0.952941236309,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[18.388,18.549],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":36,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Layer 9 Outlines 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":107,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":118.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":132.739,"s":[100]},{"t":143.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":107,"s":[347.771,72.25,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":143,"s":[347.771,35.25,0]}],"ix":2},"a":{"a":0,"k":[14.12,12.045,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.247,0.801],[0.648,1.758],[0.819,1.575],[0.68,0.099],[0.696,0.07],[1.324,0.043],[1.149,-0.004],[0.098,-0.937],[-0.086,-0.225],[-0.315,-1.12],[-0.385,-1.365],[-0.242,-1.273],[1.553,0.136],[1.586,-0.899],[0.517,-0.932],[-0.417,-0.98],[-0.921,-0.443],[-1.66,-0.031],[-1.496,1.317],[0.074,1.941],[0.431,2.029],[0.468,2.204],[-0.74,0.008],[-1.404,0.016],[-0.452,-1.139],[-0.59,-1.485],[-0.32,-1.527],[0.268,-0.388],[0.478,0.141],[0.846,-0.149],[0.5,-1.752],[0.021,-0.151],[-2.184,0.639],[-0.534,1.214],[0.49,1.795]],"o":[[-0.483,-1.812],[-0.607,-1.647],[-0.324,-0.623],[-0.692,-0.099],[-1.318,-0.134],[-1.149,-0.037],[-0.646,0.001],[-0.008,0.24],[0.342,1.112],[0.385,1.365],[0.373,1.241],[0.489,2.845],[-1.816,-0.16],[-0.924,0.531],[-0.517,0.932],[0.401,0.94],[1.497,0.719],[1.994,0.036],[1.459,-1.283],[-0.08,-2.105],[-0.469,-2.204],[-0.238,-1.12],[1.404,-0.016],[1.305,-0.015],[0.589,1.485],[0.574,1.45],[0.093,0.435],[-0.349,0.505],[-0.833,-0.246],[-1.677,0.295],[-0.042,0.146],[-0.435,3.28],[1.242,-0.364],[0.788,-1.795],[-0.223,-0.816]],"v":[[12.162,0.016],[10.369,-5.311],[8.452,-10.113],[7.335,-10.867],[5.255,-11.126],[1.29,-11.382],[-2.158,-11.426],[-4.796,-10.858],[-4.679,-10.152],[-3.705,-6.801],[-2.55,-2.706],[-1.627,1.068],[-5.689,2.341],[-10.913,3.475],[-13.197,5.655],[-13.454,8.732],[-11.265,10.784],[-6.42,11.758],[-0.794,10.189],[1.17,4.904],[-0.205,-1.125],[-1.61,-7.737],[0.894,-8.633],[5.105,-8.681],[7.498,-6.84],[9.266,-2.385],[10.61,2.089],[10.492,3.458],[9.322,3.697],[6.679,3.648],[2.695,6.634],[2.601,7.081],[10.192,10.262],[13.083,7.947],[12.867,2.443]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.941176530427,0.952941236309,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.12,12.045],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":107,"op":143,"st":107,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Layer 9 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":71.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":85.739,"s":[100]},{"t":96.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":60,"s":[347.771,72.25,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":96,"s":[347.771,35.25,0]}],"ix":2},"a":{"a":0,"k":[14.12,12.045,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.247,0.801],[0.648,1.758],[0.819,1.575],[0.68,0.099],[0.696,0.07],[1.324,0.043],[1.149,-0.004],[0.098,-0.937],[-0.086,-0.225],[-0.315,-1.12],[-0.385,-1.365],[-0.242,-1.273],[1.553,0.136],[1.586,-0.899],[0.517,-0.932],[-0.417,-0.98],[-0.921,-0.443],[-1.66,-0.031],[-1.496,1.317],[0.074,1.941],[0.431,2.029],[0.468,2.204],[-0.74,0.008],[-1.404,0.016],[-0.452,-1.139],[-0.59,-1.485],[-0.32,-1.527],[0.268,-0.388],[0.478,0.141],[0.846,-0.149],[0.5,-1.752],[0.021,-0.151],[-2.184,0.639],[-0.534,1.214],[0.49,1.795]],"o":[[-0.483,-1.812],[-0.607,-1.647],[-0.324,-0.623],[-0.692,-0.099],[-1.318,-0.134],[-1.149,-0.037],[-0.646,0.001],[-0.008,0.24],[0.342,1.112],[0.385,1.365],[0.373,1.241],[0.489,2.845],[-1.816,-0.16],[-0.924,0.531],[-0.517,0.932],[0.401,0.94],[1.497,0.719],[1.994,0.036],[1.459,-1.283],[-0.08,-2.105],[-0.469,-2.204],[-0.238,-1.12],[1.404,-0.016],[1.305,-0.015],[0.589,1.485],[0.574,1.45],[0.093,0.435],[-0.349,0.505],[-0.833,-0.246],[-1.677,0.295],[-0.042,0.146],[-0.435,3.28],[1.242,-0.364],[0.788,-1.795],[-0.223,-0.816]],"v":[[12.162,0.016],[10.369,-5.311],[8.452,-10.113],[7.335,-10.867],[5.255,-11.126],[1.29,-11.382],[-2.158,-11.426],[-4.796,-10.858],[-4.679,-10.152],[-3.705,-6.801],[-2.55,-2.706],[-1.627,1.068],[-5.689,2.341],[-10.913,3.475],[-13.197,5.655],[-13.454,8.732],[-11.265,10.784],[-6.42,11.758],[-0.794,10.189],[1.17,4.904],[-0.205,-1.125],[-1.61,-7.737],[0.894,-8.633],[5.105,-8.681],[7.498,-6.84],[9.266,-2.385],[10.61,2.089],[10.492,3.458],[9.322,3.697],[6.679,3.648],[2.695,6.634],[2.601,7.081],[10.192,10.262],[13.083,7.947],[12.867,2.443]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.941176530427,0.952941236309,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.12,12.045],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":60,"op":96,"st":60,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Layer 9 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":4,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":29.739,"s":[100]},{"t":40.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":4,"s":[347.771,72.25,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":40,"s":[347.771,35.25,0]}],"ix":2},"a":{"a":0,"k":[14.12,12.045,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.247,0.801],[0.648,1.758],[0.819,1.575],[0.68,0.099],[0.696,0.07],[1.324,0.043],[1.149,-0.004],[0.098,-0.937],[-0.086,-0.225],[-0.315,-1.12],[-0.385,-1.365],[-0.242,-1.273],[1.553,0.136],[1.586,-0.899],[0.517,-0.932],[-0.417,-0.98],[-0.921,-0.443],[-1.66,-0.031],[-1.496,1.317],[0.074,1.941],[0.431,2.029],[0.468,2.204],[-0.74,0.008],[-1.404,0.016],[-0.452,-1.139],[-0.59,-1.485],[-0.32,-1.527],[0.268,-0.388],[0.478,0.141],[0.846,-0.149],[0.5,-1.752],[0.021,-0.151],[-2.184,0.639],[-0.534,1.214],[0.49,1.795]],"o":[[-0.483,-1.812],[-0.607,-1.647],[-0.324,-0.623],[-0.692,-0.099],[-1.318,-0.134],[-1.149,-0.037],[-0.646,0.001],[-0.008,0.24],[0.342,1.112],[0.385,1.365],[0.373,1.241],[0.489,2.845],[-1.816,-0.16],[-0.924,0.531],[-0.517,0.932],[0.401,0.94],[1.497,0.719],[1.994,0.036],[1.459,-1.283],[-0.08,-2.105],[-0.469,-2.204],[-0.238,-1.12],[1.404,-0.016],[1.305,-0.015],[0.589,1.485],[0.574,1.45],[0.093,0.435],[-0.349,0.505],[-0.833,-0.246],[-1.677,0.295],[-0.042,0.146],[-0.435,3.28],[1.242,-0.364],[0.788,-1.795],[-0.223,-0.816]],"v":[[12.162,0.016],[10.369,-5.311],[8.452,-10.113],[7.335,-10.867],[5.255,-11.126],[1.29,-11.382],[-2.158,-11.426],[-4.796,-10.858],[-4.679,-10.152],[-3.705,-6.801],[-2.55,-2.706],[-1.627,1.068],[-5.689,2.341],[-10.913,3.475],[-13.197,5.655],[-13.454,8.732],[-11.265,10.784],[-6.42,11.758],[-0.794,10.189],[1.17,4.904],[-0.205,-1.125],[-1.61,-7.737],[0.894,-8.633],[5.105,-8.681],[7.498,-6.84],[9.266,-2.385],[10.61,2.089],[10.492,3.458],[9.322,3.697],[6.679,3.648],[2.695,6.634],[2.601,7.081],[10.192,10.262],[13.083,7.947],[12.867,2.443]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.941176530427,0.952941236309,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.12,12.045],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":4,"op":40,"st":4,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Layer 5 Outlines 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":112,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":123.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":137.739,"s":[100]},{"t":148.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":112,"s":[320.102,102.845,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":148,"s":[320.102,65.845,0]}],"ix":2},"a":{"a":0,"k":[49.352,32.095,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.52,0],[0,0],[0,-14.519],[-8.959,-4.445],[-1.916,-0.753],[-0.316,-0.217],[0.617,-1.476],[1.615,-1.417],[-2.14,1.866],[-1.256,0.931],[-1.083,0.553],[-1.655,0],[0,0],[0,14.52]],"o":[[0,0],[-14.519,0],[0,10.067],[1.843,0.914],[0.362,0.124],[1.587,1.193],[-0.84,1.977],[2.14,-1.866],[1.173,-1.024],[0.971,-0.731],[1.483,-0.742],[0,0],[14.52,0],[0,-14.519]],"v":[[22.703,-31.845],[-22.703,-31.845],[-49.102,-5.446],[-34.146,18.319],[-28.43,20.671],[-27.407,21.185],[-27.287,26.689],[-31.017,31.845],[-24.598,26.248],[-20.984,23.26],[-17.898,21.329],[-12.61,20.953],[22.703,20.953],[49.102,-5.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.388235324037,0.925490255917,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.352,32.095],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":112,"op":148,"st":112,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Layer 5 Outlines 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":65,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":76.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":90.739,"s":[100]},{"t":101.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":65,"s":[320.102,102.845,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":101,"s":[320.102,65.845,0]}],"ix":2},"a":{"a":0,"k":[49.352,32.095,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.52,0],[0,0],[0,-14.519],[-8.959,-4.445],[-1.916,-0.753],[-0.316,-0.217],[0.617,-1.476],[1.615,-1.417],[-2.14,1.866],[-1.256,0.931],[-1.083,0.553],[-1.655,0],[0,0],[0,14.52]],"o":[[0,0],[-14.519,0],[0,10.067],[1.843,0.914],[0.362,0.124],[1.587,1.193],[-0.84,1.977],[2.14,-1.866],[1.173,-1.024],[0.971,-0.731],[1.483,-0.742],[0,0],[14.52,0],[0,-14.519]],"v":[[22.703,-31.845],[-22.703,-31.845],[-49.102,-5.446],[-34.146,18.319],[-28.43,20.671],[-27.407,21.185],[-27.287,26.689],[-31.017,31.845],[-24.598,26.248],[-20.984,23.26],[-17.898,21.329],[-12.61,20.953],[22.703,20.953],[49.102,-5.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.388235324037,0.925490255917,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.352,32.095],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":65,"op":101,"st":65,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Layer 5 Outlines","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":9,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20.44,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":34.739,"s":[100]},{"t":45.0361328125,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.421,"y":0},"t":9,"s":[320.102,102.845,0],"to":[0,-6.167,0],"ti":[0,6.167,0]},{"t":45,"s":[320.102,65.845,0]}],"ix":2},"a":{"a":0,"k":[49.352,32.095,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.52,0],[0,0],[0,-14.519],[-8.959,-4.445],[-1.916,-0.753],[-0.316,-0.217],[0.617,-1.476],[1.615,-1.417],[-2.14,1.866],[-1.256,0.931],[-1.083,0.553],[-1.655,0],[0,0],[0,14.52]],"o":[[0,0],[-14.519,0],[0,10.067],[1.843,0.914],[0.362,0.124],[1.587,1.193],[-0.84,1.977],[2.14,-1.866],[1.173,-1.024],[0.971,-0.731],[1.483,-0.742],[0,0],[14.52,0],[0,-14.519]],"v":[[22.703,-31.845],[-22.703,-31.845],[-49.102,-5.446],[-34.146,18.319],[-28.43,20.671],[-27.407,21.185],[-27.287,26.689],[-31.017,31.845],[-24.598,26.248],[-20.984,23.26],[-17.898,21.329],[-12.61,20.953],[22.703,20.953],[49.102,-5.446]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.435294147566,0.388235324037,0.925490255917,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.352,32.095],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":9,"op":45,"st":9,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Layer 11 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.157],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.157],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[-5]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":78,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":118,"s":[0]},{"t":150,"s":[0]}],"ix":10},"p":{"a":0,"k":[174.295,361.17,0],"ix":2},"a":{"a":0,"k":[14.153,24.223,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.584,-0.481],[0.197,-0.069],[0.193,-0.082],[0.187,-0.097],[0.177,-0.114],[0.563,-0.629],[0.349,-0.758],[0.065,-0.195],[0.049,-0.199],[0.043,-0.198],[0.034,-0.199],[-0.091,0.179],[-0.094,0.174],[-0.101,0.168],[-0.111,0.161],[-0.568,0.52],[-1.456,0.441],[-1.565,0.111],[-1.615,-0.004],[1.623,0.056]],"o":[[-0.199,0.065],[-0.195,0.078],[-0.189,0.093],[-0.183,0.106],[-0.719,0.443],[-0.554,0.625],[-0.084,0.189],[-0.067,0.194],[-0.052,0.198],[-0.038,0.2],[0.096,-0.18],[0.087,-0.179],[0.092,-0.175],[0.098,-0.17],[0.436,-0.634],[1.134,-1.015],[1.456,-0.465],[1.567,-0.114],[-1.556,-0.464],[-1.654,-0.073]],"v":[[-1.695,-3.197],[-2.287,-2.988],[-2.869,-2.747],[-3.435,-2.468],[-3.983,-2.153],[-5.916,-0.535],[-7.277,1.549],[-7.515,2.118],[-7.712,2.7],[-7.87,3.288],[-7.984,3.885],[-7.71,3.347],[-7.425,2.822],[-7.121,2.314],[-6.797,1.823],[-5.286,0.085],[-1.353,-2.126],[3.212,-2.931],[7.984,-3.028],[3.196,-3.812]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.239215701234,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.418,6.727],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[6.426,1.918],[1.68,-1.912],[0.344,-1.896],[-2.527,-3.608],[-4.394,-1.689],[-2.292,-0.714],[-0.546,2.457],[-0.013,0.147],[1.788,4.998]],"o":[[-2.213,-0.661],[-1.308,1.488],[-0.766,4.236],[2.76,3.94],[2.242,0.862],[1.718,0.535],[0.031,-0.143],[0.505,-5.256],[-2.263,-6.322]],"v":[[-2.909,-15.245],[-10.491,-14.411],[-12.84,-8.435],[-10.594,4.521],[0.882,12.499],[7.714,14.778],[12.897,14.478],[12.964,14.043],[11.316,-1.973]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870588295133,0.466666696586,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[20.062,32.411],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.873,0.926],[2.502,2.198],[1.546,0.666],[1.228,0.247],[4.709,0.946],[6.816,3.277],[22.316,10.539],[3.019,0.517],[-8.051,-10.081],[-11.547,-3.071],[-6.229,-1.46],[-11.094,-1.703],[-2.97,-0.382],[-7.452,-5.347],[-3.04,0.578],[1.394,1.532],[0.913,1.655],[-0.279,-0.185],[-0.784,-0.7],[-2.769,-1.074],[-0.579,-0.107],[-0.497,0.348],[0.367,0.306],[0.414,0.35],[0.846,0.74],[1.643,1.535],[-0.07,0.158],[-0.591,-0.515],[-0.775,-0.621],[-2.18,-0.537],[-0.331,0.547],[2.168,2.534],[-1.672,-0.946],[-1.689,0.42],[-0.119,0.22]],"o":[[-2.284,-2.422],[-1.266,-1.111],[-1.151,-0.496],[-4.709,-0.946],[-7.452,-1.497],[-22.243,-10.694],[-2.769,-1.308],[-18.005,-3.08],[7.937,9.939],[6.179,1.644],[10.93,2.545],[2.959,0.454],[8.921,1.142],[2.515,1.805],[-1.183,-1.712],[-1.296,-1.424],[0.239,-0.23],[0.877,0.581],[2.216,1.977],[0.544,0.226],[0.568,0.091],[0.628,-0.438],[-0.416,-0.347],[-0.858,-0.727],[-1.693,-1.48],[-0.129,-0.121],[0.755,0.209],[0.75,0.652],[1.753,1.404],[0.621,0.153],[-2.494,-2.213],[1.529,1.164],[1.397,0.79],[0.243,-0.061],[0.677,-1.263]],"v":[[69.287,22.643],[62.146,15.663],[58.008,12.801],[54.39,11.807],[40.262,8.971],[18.982,0.499],[-47.801,-31.439],[-56.402,-34.585],[-67.467,-1.477],[-33.779,13.507],[-15.167,18.163],[17.867,24.613],[26.761,25.867],[52.937,34.348],[61.537,37.087],[57.407,32.443],[54.311,27.814],[55.066,27.844],[57.471,29.878],[65.01,34.492],[66.7,34.993],[68.959,34.904],[68.662,33.727],[67.417,32.682],[64.861,30.482],[59.859,25.96],[59.717,25.577],[61.898,27.337],[64.17,29.266],[70.041,32.456],[71.791,32.087],[64.626,25.118],[69.433,28.286],[74.226,29.896],[74.84,29.503]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.760784373564,0.988235353956,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[75.768,37.915],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Layer 10 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.344],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[-4]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[0]},{"i":{"x":[0.208],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":77,"s":[1]},{"t":107,"s":[-4]}],"ix":10},"p":{"a":0,"k":[242.302,364.998,0],"ix":2},"a":{"a":0,"k":[26.572,182.676,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.278,2.128],[0,0],[0,0],[0.106,0.527],[0.251,1.042],[0.864,1.961],[-0.362,-2.097],[-0.125,-1.053],[-0.058,-0.527],[0,0],[0,0],[-0.046,-2.122],[0.035,-2.126],[0,0],[0.013,-0.528],[0.029,-0.526],[0,0],[0.067,-0.522],[0.094,-0.518],[0.267,-1.018],[0.17,-0.498],[0,0],[0.087,-0.249],[0,0],[0,0],[0.114,-0.238],[0,0],[1.366,-1.626],[-1.06,1.871],[0,0],[-0.121,0.241],[0,0],[0,0],[-0.091,0.254],[0,0],[-0.165,0.514],[0,0],[0,0],[0,0],[-0.058,0.264],[0,0],[-0.098,0.53],[-0.077,0.534],[-0.048,0.537],[-0.023,0.539],[-0.014,1.069],[0.097,2.141]],"o":[[0,0],[0,0],[-0.08,-0.531],[-0.189,-1.056],[-0.498,-2.085],[0.644,2.028],[0.184,1.045],[0.073,0.525],[0,0],[0,0],[0.172,2.113],[0.059,2.121],[0,0],[-0.003,0.533],[-0.018,0.527],[0,0],[-0.062,0.522],[-0.084,0.52],[-0.193,1.034],[-0.139,0.508],[0,0],[-0.081,0.251],[0,0],[0,0],[-0.105,0.242],[0,0],[-0.928,1.911],[1.553,-1.488],[0,0],[0.131,-0.236],[0,0],[0,0],[0.103,-0.249],[0,0],[0.195,-0.504],[0,0],[0,0],[0,0],[0.075,-0.26],[0,0],[0.11,-0.529],[0.083,-0.533],[0.059,-0.536],[0.034,-0.538],[0.049,-1.08],[0.011,-2.139],[-0.108,-2.139]],"v":[[3.431,-12.102],[3.331,-12.898],[3.211,-13.694],[2.951,-15.283],[2.286,-18.43],[0.24,-24.511],[1.749,-18.316],[2.225,-15.171],[2.409,-13.591],[2.495,-12.801],[2.562,-12.008],[2.905,-5.655],[2.943,0.715],[2.926,2.311],[2.884,3.895],[2.796,5.473],[2.659,7.049],[2.471,8.617],[2.224,10.178],[1.551,13.262],[1.117,14.779],[0.878,15.533],[0.612,16.277],[0.342,17.02],[0.035,17.748],[-0.278,18.475],[-0.623,19.186],[-4.077,24.511],[-0.137,19.446],[0.259,18.74],[0.621,18.016],[0.978,17.29],[1.297,16.546],[1.608,15.799],[1.887,15.037],[2.396,13.501],[2.517,13.114],[2.622,12.723],[2.832,11.941],[3.018,11.153],[3.19,10.361],[3.483,8.77],[3.715,7.167],[3.878,5.558],[3.98,3.943],[4.065,0.727],[3.965,-5.693]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.239215701234,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.261,167.949],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.757,4.222],[0.576,-0.002],[0.187,-0.209],[-0.047,-1.794],[-0.347,-2.12],[0.876,3.623],[0.174,-0.693],[-0.467,-2.466],[-0.251,-1.083],[0.189,-0.855],[0.051,0.19],[0.574,2.448],[0.267,1.228],[0.125,0.593],[0.763,-0.39],[0.208,-0.608],[0.062,-0.656],[-0.79,-3.226],[-0.114,-1.17],[0.353,-0.115],[0.727,2.026],[1.069,2.067],[-0.463,-3.431],[3.763,-8.97],[3.124,-10.191],[1.357,-5.746],[1.742,-15.058],[-4.585,-12.954],[-2.997,-2.534],[-2.971,-0.757],[-3.074,13.095],[1.667,9.693],[0.128,11.013],[-0.534,11.246],[-3.288,9.096],[-2,5.534],[-0.137,3.734],[1.055,3.714]],"o":[[-0.102,-0.567],[-0.279,0.001],[-1.301,1.447],[0.057,2.148],[-1.365,-3.469],[-0.715,0.04],[-0.614,2.435],[0.207,1.092],[0.199,0.853],[-0.193,-0.014],[-0.655,-2.428],[-0.287,-1.223],[-0.129,-0.593],[-0.109,-0.522],[-0.604,0.309],[-0.198,0.628],[-0.392,3.298],[0.28,1.141],[0.036,0.373],[-1.155,-1.77],[-0.782,-2.18],[-2.166,2.699],[1.333,9.873],[-4.114,9.806],[-1.732,5.649],[-3.511,14.752],[-1.545,13.352],[1.31,3.7],[2.341,1.98],[11.519,2.937],[2.287,-9.741],[-1.878,-10.914],[-0.13,-11.251],[0.456,-9.588],[2.001,-5.534],[1.258,-3.478],[0.142,-3.892],[-1.17,-4.12]],"v":[[22.006,-96.503],[21.074,-97.782],[20.363,-97.382],[19.439,-91.805],[20.046,-85.396],[16.923,-96.125],[15.641,-94.592],[15.711,-87.121],[16.424,-83.865],[17.018,-80.788],[16.715,-81.129],[14.872,-88.442],[14.04,-92.119],[13.661,-93.898],[12.655,-94.807],[11.382,-92.623],[10.99,-90.691],[11.592,-80.826],[12.34,-77.385],[11.974,-76.623],[9.027,-82.109],[6.607,-88.624],[4.801,-78.694],[-1.001,-50.193],[-12.383,-20.598],[-17.018,-3.505],[-24.66,41.303],[-22.981,80.969],[-16.898,90.886],[-8.647,94.768],[15.357,84.689],[15.784,51.233],[14.582,18.159],[15.188,-15.587],[18.743,-45.142],[24.745,-61.745],[27.424,-72.529],[25.197,-84.055]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.760784373564,0.988235353956,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[27.816,98.034],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Layer 13 Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.141,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":38.281,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58.486,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":77.627,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96.768,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":115.908,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":131.859,"s":[1]},{"t":151,"s":[-1]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.258,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[252.861,237.121,0],"to":[0,0.217,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.387,"y":0},"t":30,"s":[252.861,238.421,0],"to":[0,0,0],"ti":[0,0.217,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.742,"y":0},"t":120,"s":[252.861,238.421,0],"to":[0,-0.217,0],"ti":[0,0.217,0]},{"t":150,"s":[252.861,237.121,0]}],"ix":2},"a":{"a":0,"k":[59.833,122.585,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.258,0.097,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":30,"s":[100,97,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.742,0.903,0.333],"y":[0,0,0]},"t":120,"s":[100,97,100]},{"t":150,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.698,0.26],[0.149,-3.098],[-0.755,-2.944],[-2.034,-1.361],[-0.924,2.425],[3.568,4.093]],"o":[[-4.497,-0.689],[-0.146,3.036],[0.563,2.194],[3.401,2.275],[1.915,-5.025],[-1.06,-1.215]],"v":[[-1.279,-12.602],[-6.582,-4.105],[-5.663,4.916],[-2.273,12.17],[5.549,5.705],[3.291,-9.014]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.960784373564,0.313725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[70.685,55.087],"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":"Group 2","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.224,-2.546],[-5.388,-6.811],[-1.686,-0.625],[-2,1.075],[-1.171,3.073],[3.568,4.092]],"o":[[-7.911,4.767],[1.107,1.401],[2.349,0.87],[3.064,-1.648],[1.915,-5.025],[-2.921,-3.35]],"v":[[-3.845,-12.471],[-7.004,10.983],[-2.816,14.147],[3.799,13.574],[10.477,5.542],[8.219,-9.176]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.894117706897,0.866666726505,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.757,55.25],"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":"Group 3","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.45,7.905],[6.324,0.36],[0.45,-7.906],[-6.324,-0.36]],"o":[[0.45,-7.905],[-6.325,-0.36],[-0.45,7.905],[6.325,0.36]],"v":[[11.451,0.651],[0.815,-14.314],[-11.451,-0.651],[-0.815,14.314]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411824544,0.772549079446,0.258823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[63.259,55.456],"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":"Group 4","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.45,7.905],[6.325,0.36],[0.45,-7.905],[-6.324,-0.36]],"o":[[0.45,-7.905],[-6.324,-0.36],[-0.45,7.905],[6.325,0.36]],"v":[[11.451,0.651],[0.814,-14.314],[-11.451,-0.651],[-0.815,14.314]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.533333333333,0.121568634931,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[60.968,55.328],"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":"Group 5","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.252,3.206],[6.26,0.8],[-1.007,-2.312],[-0.547,-0.451],[-2.767,-7.689],[-1.158,-0.834],[-0.425,-0.066],[-0.412,0.122],[-0.197,0.682],[0.243,1.235]],"o":[[-2.097,-5.372],[-1.25,-0.16],[0.283,0.65],[6.307,5.195],[0.483,1.343],[0.356,0.24],[0.424,0.065],[0.621,-0.191],[0.351,-1.219],[-0.665,-3.373]],"v":[[6.397,-2.001],[-5.591,-14.113],[-9.879,-12.213],[-8.461,-10.657],[3.989,10.105],[6.163,13.714],[7.349,14.178],[8.619,14.09],[9.956,12.794],[9.177,7.933]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.960784373564,0.313725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[55.398,15.971],"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":"Group 6","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.035,0.434],[12.625,1.614],[1.473,-0.387],[0.55,-0.162],[0.134,-0.12],[-0.32,-0.376],[-0.868,-0.988],[-2.104,-12.117],[-3.396,0.704],[0.111,4.144]],"o":[[-0.781,-9.633],[-1.515,-0.192],[-0.555,0.146],[-0.177,0.036],[-0.337,0.361],[0.87,1.023],[8.476,9.654],[0.396,2.28],[3.388,-0.702],[-0.019,-0.723]],"v":[[11.551,9.261],[-4.766,-24.316],[-9.28,-23.788],[-10.937,-23.327],[-11.413,-23.088],[-11.107,-21.777],[-8.358,-18.965],[3.694,16.818],[7.991,23.804],[11.639,11.025]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.894117706897,0.866666726505,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.572,26.174],"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":"Group 7","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.361,1.924],[12.28,-3.141],[0.444,-0.315],[-0.073,-0.54],[-0.303,-0.342],[-2.067,-9.136],[-4.547,1.406],[-0.406,0.686],[0.202,3.923]],"o":[[-1.426,-7.842],[-0.529,0.136],[-0.444,0.316],[0.061,0.453],[6.303,7.079],[0.637,2.817],[0.762,-0.236],[1.933,-3.27],[-0.114,-1.954]],"v":[[10.107,5.823],[-8.732,-22.694],[-10.244,-22.1],[-10.949,-20.715],[-10.261,-19.553],[1.51,6.336],[6.914,24.428],[8.636,22.849],[10.82,11.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.533333333333,0.121568634931,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.302,26.085],"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":"Group 8","np":4,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Layer 14 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[224.261,277.566,0],"ix":2},"a":{"a":0,"k":[25.575,96.673,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.167,0.014],[0.129,-0.108],[0.015,-0.167],[3.152,-5.061],[1.247,-2.637],[0.515,-6.077],[0.725,-3.471],[6.237,-10.184],[2.795,-11.322],[-0.851,-13.182],[2.144,-11.736],[-0.095,-0.138],[-0.164,-0.03],[-0.138,0.095],[-0.03,0.165],[0.761,11.781],[-3.222,13.05],[-5.836,9.53],[-2.59,12.413],[-0.299,3.529],[-2.651,5.605],[-1.5,2.408],[-0.545,6.227],[0.107,0.128]],"o":[[-0.167,-0.015],[-0.128,0.108],[-0.519,5.925],[-1.519,2.439],[-2.749,5.812],[-0.296,3.491],[-2.546,12.198],[-5.886,9.612],[-3.269,13.24],[0.756,11.705],[-0.03,0.165],[0.095,0.138],[0.165,0.03],[0.138,-0.096],[2.171,-11.889],[-0.845,-13.086],[2.748,-11.132],[6.293,-10.276],[0.74,-3.545],[0.506,-5.966],[1.216,-2.571],[3.092,-4.964],[0.015,-0.167],[-0.108,-0.128]],"v":[[24.736,-96.408],[24.274,-96.262],[24.051,-95.834],[17.403,-80.067],[13.067,-72.471],[9.27,-54.298],[7.943,-43.726],[-7.288,-10.813],[-22.056,20.062],[-23.594,60.113],[-24.201,95.658],[-24.099,96.13],[-23.693,96.393],[-23.22,96.292],[-22.957,95.885],[-22.333,60.033],[-20.829,20.365],[-6.21,-10.153],[9.18,-43.468],[10.529,-54.191],[14.209,-71.929],[18.476,-79.399],[25.31,-95.723],[25.165,-96.184]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.575,96.673],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Layer 13 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":19.141,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":38.281,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":58.486,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":77.627,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":96.768,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":115.908,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":131.859,"s":[1]},{"t":151,"s":[-1]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.258,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[252.861,237.121,0],"to":[0,0.217,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.387,"y":0},"t":30,"s":[252.861,238.421,0],"to":[0,0,0],"ti":[0,0.217,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.742,"y":0},"t":120,"s":[252.861,238.421,0],"to":[0,-0.217,0],"ti":[0,0.217,0]},{"t":150,"s":[252.861,237.121,0]}],"ix":2},"a":{"a":0,"k":[59.833,122.585,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.258,0.097,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":30,"s":[100,97,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.742,0.903,0.333],"y":[0,0,0]},"t":120,"s":[100,97,100]},{"t":150,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.817,0.94],[0,0]],"o":[[0,0],[-0.316,-1.968]],"v":[[-9.762,-2.2],[-7.383,1.942]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.17,-0.552],[0,0],[0.325,-0.184],[0.368,-0.444]],"o":[[0,0],[-0.372,0.017],[-0.51,0.269],[-0.368,0.445]],"v":[[6.559,1.882],[9.762,-1.014],[8.702,-0.708],[7.372,0.373]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0.487,-1.018],[0,0],[0.907,-0.673]],"o":[[0,0],[-1.117,0.169],[-0.907,0.672]],"v":[[1.777,2.2],[6.982,-1.655],[3.9,-0.374]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.207843152214,0.192156877705,0.180392156863,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.09,48.698],"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":"Group 1","np":7,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.698,0.26],[0.149,-3.098],[-0.755,-2.944],[-2.034,-1.361],[-0.924,2.425],[3.568,4.093]],"o":[[-4.497,-0.689],[-0.146,3.036],[0.563,2.194],[3.401,2.275],[1.915,-5.025],[-1.06,-1.215]],"v":[[-1.279,-12.602],[-6.582,-4.105],[-5.663,4.916],[-2.273,12.17],[5.549,5.705],[3.291,-9.014]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.960784373564,0.313725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[70.685,55.087],"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":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.224,-2.546],[-5.388,-6.811],[-1.686,-0.625],[-2,1.075],[-1.171,3.073],[3.568,4.092]],"o":[[-7.911,4.767],[1.107,1.401],[2.349,0.87],[3.064,-1.648],[1.915,-5.025],[-2.921,-3.35]],"v":[[-3.845,-12.471],[-7.004,10.983],[-2.816,14.147],[3.799,13.574],[10.477,5.542],[8.219,-9.176]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.894117706897,0.866666726505,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.757,55.25],"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":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.45,7.905],[6.324,0.36],[0.45,-7.906],[-6.324,-0.36]],"o":[[0.45,-7.905],[-6.325,-0.36],[-0.45,7.905],[6.325,0.36]],"v":[[11.451,0.651],[0.815,-14.314],[-11.451,-0.651],[-0.815,14.314]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411824544,0.772549079446,0.258823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[63.259,55.456],"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":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.45,7.905],[6.325,0.36],[0.45,-7.905],[-6.324,-0.36]],"o":[[0.45,-7.905],[-6.324,-0.36],[-0.45,7.905],[6.325,0.36]],"v":[[11.451,0.651],[0.814,-14.314],[-11.451,-0.651],[-0.815,14.314]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.533333333333,0.121568634931,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[60.968,55.328],"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":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.252,3.206],[6.26,0.8],[-1.007,-2.312],[-0.547,-0.451],[-2.767,-7.689],[-1.158,-0.834],[-0.425,-0.066],[-0.412,0.122],[-0.197,0.682],[0.243,1.235]],"o":[[-2.097,-5.372],[-1.25,-0.16],[0.283,0.65],[6.307,5.195],[0.483,1.343],[0.356,0.24],[0.424,0.065],[0.621,-0.191],[0.351,-1.219],[-0.665,-3.373]],"v":[[6.397,-2.001],[-5.591,-14.113],[-9.879,-12.213],[-8.461,-10.657],[3.989,10.105],[6.163,13.714],[7.349,14.178],[8.619,14.09],[9.956,12.794],[9.177,7.933]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.909803981407,0.960784373564,0.313725490196,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[55.398,15.971],"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":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.035,0.434],[12.625,1.614],[1.473,-0.387],[0.55,-0.162],[0.134,-0.12],[-0.32,-0.376],[-0.868,-0.988],[-2.104,-12.117],[-3.396,0.704],[0.111,4.144]],"o":[[-0.781,-9.633],[-1.515,-0.192],[-0.555,0.146],[-0.177,0.036],[-0.337,0.361],[0.87,1.023],[8.476,9.654],[0.396,2.28],[3.388,-0.702],[-0.019,-0.723]],"v":[[11.551,9.261],[-4.766,-24.316],[-9.28,-23.788],[-10.937,-23.327],[-11.413,-23.088],[-11.107,-21.777],[-8.358,-18.965],[3.694,16.818],[7.991,23.804],[11.639,11.025]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.894117706897,0.866666726505,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.572,26.174],"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":"Group 7","np":4,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.361,1.924],[12.28,-3.141],[0.444,-0.315],[-0.073,-0.54],[-0.303,-0.342],[-2.067,-9.136],[-4.547,1.406],[-0.406,0.686],[0.202,3.923]],"o":[[-1.426,-7.842],[-0.529,0.136],[-0.444,0.316],[0.061,0.453],[6.303,7.079],[0.637,2.817],[0.762,-0.236],[1.933,-3.27],[-0.114,-1.954]],"v":[[10.107,5.823],[-8.732,-22.694],[-10.244,-22.1],[-10.949,-20.715],[-10.261,-19.553],[1.51,6.336],[6.914,24.428],[8.636,22.849],[10.82,11.647]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.533333333333,0.121568634931,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.302,26.085],"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":"Group 8","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.611,4.049],[0.231,0.201],[1.402,2.446],[-1.289,6.375],[-0.212,1.193],[0.332,4.962],[1.382,2.27],[4.87,1.393],[4.164,0.094],[1.962,-0.073],[4.537,1.595],[1.783,0.937],[4.072,-0.5],[2.649,-1.781],[3.259,-0.081],[0,0],[-2.877,1.934],[-2.981,0.367],[-3.635,-1.909],[-1.921,-0.675],[-4.891,0.18],[-1.956,-0.044],[-3.936,-1.125],[-1.589,-2.61],[-0.163,-2.434],[0.858,-4.83],[0.24,-1.188],[-3.262,-5.686],[-2.192,-1.91],[-0.229,-0.201],[-0.452,-6.755],[1.904,-4.076],[0,0],[0,0],[0,0],[0.335,5.005]],"o":[[-0.23,-0.201],[-2.14,-1.865],[-3.104,-5.411],[0.241,-1.193],[0.87,-4.896],[-0.171,-2.541],[-1.707,-2.803],[-4.005,-1.145],[-1.981,-0.045],[-4.812,0.177],[-1.864,-0.654],[-3.59,-1.886],[-3.181,0.391],[-2.905,1.952],[0,0],[3.504,-0.087],[2.568,-1.725],[3.81,-0.468],[1.81,0.952],[4.689,1.648],[1.949,-0.072],[4.092,0.093],[4.654,1.332],[1.288,2.115],[0.328,4.894],[-0.211,1.183],[-1.319,6.528],[1.473,2.569],[0.23,0.201],[4.489,3.941],[0.32,4.788],[0,0],[0,0],[0,0],[1.947,-4.169],[-0.472,-7.062]],"v":[[36.564,15.1],[35.873,14.497],[30.118,8.258],[29.635,-10.121],[30.337,-13.741],[31.147,-28.582],[29.246,-36.057],[19.606,-42.207],[7.302,-44.074],[1.331,-43.973],[-12.995,-45.207],[-18.486,-47.767],[-29.859,-51.104],[-38.428,-47.09],[-47.336,-43.214],[-47.315,-42.371],[-37.959,-46.392],[-29.756,-50.267],[-18.878,-47.022],[-13.275,-44.413],[1.362,-43.13],[7.283,-43.233],[19.374,-41.397],[28.526,-35.62],[30.306,-28.526],[29.508,-13.888],[28.809,-10.289],[29.387,8.677],[35.319,15.132],[36.008,15.734],[46.161,31.82],[42.419,45.304],[39.644,51.248],[40.407,51.604],[43.183,45.661],[47.001,31.763]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.019607843137,0.709803921569,0.976470648074,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[66.58,53.541],"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":"Group 9","np":4,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.548,5.193],[5.233,1.192],[3.379,0.133],[1.072,0.061],[9.647,9.749],[0,0],[0.691,0.369],[0,0],[-0.501,-0.508],[0,0],[-4.659,-2.545],[-5.691,-0.326],[-1.063,-0.042],[-3.293,-0.735],[-3.794,-3.58],[2.646,-7.487],[0.4,-0.934],[0.384,-1.185],[-0.327,-3.233],[-0.055,-1.22],[1.115,-3.537],[0,0],[0.137,3.06],[0.117,1.156],[-1.071,3.301],[-0.472,1.101],[-0.35,0.993]],"o":[[-3.904,-3.683],[-3.366,-0.752],[-1.059,-0.042],[-10.514,-0.602],[0,0],[-0.524,-0.53],[0,0],[0.578,0.308],[0,0],[4.513,4.56],[5.383,2.941],[1.08,0.062],[3.342,0.131],[5.086,1.159],[5.348,5.005],[-0.342,0.967],[-0.48,1.118],[-1.126,3.47],[0.116,1.145],[0.133,2.962],[0,0],[1.144,-3.629],[-0.056,-1.243],[-0.317,-3.143],[0.373,-1.149],[0.406,-0.946],[2.773,-7.846]],"v":[[24.854,-12.904],[10.898,-20.348],[0.658,-21.37],[-2.569,-21.516],[-32.53,-36.899],[-32.606,-36.977],[-34.363,-38.424],[-34.759,-37.679],[-33.206,-36.385],[-33.129,-36.307],[-19.306,-25.598],[-2.617,-20.675],[0.625,-20.529],[10.715,-19.527],[24.278,-12.288],[31.192,8.605],[30.036,11.471],[28.676,14.932],[28.185,24.687],[28.475,28.236],[26.974,38.17],[27.778,38.424],[29.317,28.199],[29.023,24.604],[29.477,15.191],[30.81,11.803],[31.986,8.886]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.019607843137,0.709803921569,0.976470648074,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.745,63.92],"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":"Group 10","np":4,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.892,-1.965],[0.837,-1.563],[2.248,-0.33],[3.527,3.544],[3.15,6.076],[1.686,-0.726],[0.252,-0.201],[0.123,-0.078],[0,0],[-0.133,0.098],[-0.233,0.113],[-1.006,-1.942],[-4.428,-4.45],[-2.751,-1.424],[-2.901,0],[-0.457,0.066],[-1.288,2.405],[-0.833,0.865],[-1.371,-0.414],[0,0]],"o":[[-0.888,0.923],[-1.154,2.157],[-5.324,0.781],[-4.344,-4.364],[-0.411,-0.794],[-0.293,0.137],[-0.127,0.094],[0,0],[0.147,-0.094],[0.202,-0.162],[0.477,-0.206],[3.182,6.139],[1.969,1.979],[2.123,1.099],[0.461,0.001],[2.526,-0.37],[0.8,-1.493],[2.035,-2.114],[0,0],[-2.105,-0.637]],"v":[[16.062,5.207],[13.533,8.85],[8.404,12.598],[-7.807,5.195],[-18.262,-10.63],[-21.451,-12.805],[-22.27,-12.296],[-22.641,-12.035],[-22.188,-11.324],[-21.77,-11.618],[-21.117,-12.031],[-19.009,-10.243],[-8.404,5.79],[-0.865,11.225],[7.148,13.529],[8.527,13.432],[14.275,9.248],[16.669,5.792],[22.396,3.827],[22.641,3.021]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.019607843137,0.709803921569,0.976470648074,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[36.17,38.078],"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":"Group 11","np":4,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.534,0.015],[0.529,0.073],[0.611,0.109],[-0.573,-0.245],[-1.184,0.437],[-0.405,0.474],[0.545,-0.037]],"o":[[-0.534,-0.017],[-0.542,-0.07],[0.375,0.497],[1.154,0.51],[0.587,-0.208],[-0.618,0.07],[-0.532,0.039]],"v":[[-0.01,-0.419],[-1.606,-0.553],[-3.302,-0.842],[-1.856,0.291],[1.789,0.405],[3.302,-0.637],[1.59,-0.455]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.239215701234,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.074,69.169],"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":"Group 12","np":4,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.023,0.546],[0,0],[-1.158,-0.036]],"o":[[0,0],[0.987,0.609],[1.159,0.036]],"v":[[3.302,-0.305],[-3.302,-0.51],[-0.028,0.474]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870588295133,0.466666696586,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.074,68.837],"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":"Group 13","np":4,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.035,-0.467],[0.239,-0.445],[1.125,-0.355],[0.489,0.433],[-0.546,0.877],[-0.233,0.19],[-0.333,0.096],[-0.268,0.143],[-0.202,0.266],[-0.075,0.325],[0.107,0.327],[0.259,0.227],[0.377,0.076],[0.363,-0.001],[0.833,-0.613],[0.014,0.037],[-0.199,0.104],[-0.138,0.088],[0,0],[-0.684,0.125],[-0.795,-0.681],[-0.318,-1.069]],"o":[[-0.057,0.507],[-0.85,1.584],[-0.55,0.174],[-0.695,-0.616],[0.149,-0.26],[0.288,-0.192],[0.29,-0.092],[0.293,-0.161],[0.201,-0.266],[0.073,-0.337],[-0.108,-0.328],[-0.302,-0.239],[-0.353,-0.085],[-1.034,-0.001],[-0.03,-0.027],[0.022,-0.1],[0.148,-0.077],[0,0],[0.597,-0.378],[0.912,-0.169],[0.701,0.6],[0.15,0.444]],"v":[[3.698,0.157],[3.173,1.592],[0.196,4.515],[-1.604,4.287],[-1.565,1.585],[-0.987,0.904],[-0.05,0.47],[0.79,0.118],[1.539,-0.53],[1.958,-1.426],[1.905,-2.441],[1.344,-3.289],[0.31,-3.767],[-0.768,-3.893],[-3.642,-2.95],[-3.708,-3.048],[-3.117,-3.445],[-2.678,-3.689],[-2.659,-3.7],[-0.759,-4.594],[1.967,-3.776],[3.524,-1.224]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.783,0.671],[1.076,-0.199],[0.643,-0.407],[0,0],[0.137,-0.072],[0.032,-0.402],[-0.119,-0.088],[0,0],[0,0],[-0.632,0.147],[-0.633,-0.147],[-0.236,-0.181],[-0.074,-0.232],[0.051,-0.238],[0.154,-0.202],[0.223,-0.121],[0.259,-0.081],[0.334,-0.229],[0.185,-0.319],[-0.928,-0.822],[-0.516,0.015],[-0.3,0.097],[-0.922,1.718],[-0.067,0.602],[0.173,0.515]],"o":[[-0.922,-0.79],[-0.792,0.144],[0,0],[-0.118,0.075],[-0.423,0.22],[-0.03,0.376],[0,0],[0,0],[0.502,-0.411],[0.633,-0.147],[0.293,0.057],[0.181,0.164],[0.075,0.231],[-0.059,0.246],[-0.154,0.201],[-0.24,0.126],[-0.388,0.113],[-0.288,0.231],[-0.67,1.077],[0.396,0.332],[0.315,-0.002],[1.27,-0.401],[0.266,-0.495],[0.045,-0.541],[-0.348,-1.174]],"v":[[2.332,-4.203],[-0.86,-5.146],[-2.959,-4.175],[-2.978,-4.164],[-3.376,-3.943],[-4.268,-3.093],[-3.817,-2.361],[-3.64,-2.23],[-3.47,-2.371],[-1.745,-3.22],[0.178,-3.221],[0.983,-2.859],[1.372,-2.256],[1.408,-1.54],[1.085,-0.86],[0.514,-0.371],[-0.235,-0.06],[-1.326,0.456],[-2.042,1.288],[-1.977,4.707],[-0.562,5.2],[0.365,5.051],[3.668,1.858],[4.256,0.219],[4.062,-1.383]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[58.523,51.581],"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":"Group 14","np":6,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.808,0.693],[1.046,-0.194],[0.629,-0.397],[-0.891,-0.659],[-0.675,0.158],[-0.675,-0.157],[-0.27,-0.209],[-0.091,-0.279],[0.062,-0.287],[0.178,-0.234],[0.257,-0.142],[0.528,-0.399],[0.168,-0.29],[-0.832,-0.737],[-0.696,0.22],[-0.709,1.321],[-0.06,0.545],[0.16,0.48]],"o":[[-0.808,-0.692],[-0.745,0.136],[-0.64,0.405],[0.536,-0.439],[0.675,-0.157],[0.335,0.067],[0.219,0.196],[0.091,0.28],[-0.067,0.286],[-0.177,0.234],[-0.577,0.326],[-0.26,0.211],[-0.587,0.943],[0.546,0.483],[1.429,-0.451],[0.259,-0.483],[0.039,-0.504],[-0.303,-1.02]],"v":[[2.15,-3.988],[-0.809,-4.868],[-2.827,-3.925],[-3.649,-2.585],[-1.808,-3.492],[0.244,-3.492],[1.164,-3.072],[1.638,-2.347],[1.683,-1.482],[1.312,-0.693],[0.653,-0.124],[-1.156,0.682],[-1.803,1.439],[-1.79,4.499],[0.281,4.785],[3.421,1.727],[3.977,0.19],[3.793,-1.302]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[58.522,51.579],"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":"Group 15","np":4,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.194,0.201],[0.029,0.095],[0.002,0.038],[-0.005,0.044],[-0.036,0.113],[-0.053,0.125],[-0.14,0.287],[-0.066,0.156],[-0.028,0.071],[0,0],[-0.197,0.626],[0.409,-0.539],[0,0],[0,0],[0.09,-0.138],[0.136,-0.321],[0.043,-0.184],[-0.006,-0.207],[-0.03,-0.115],[-0.068,-0.106],[-0.081,-0.085],[0,0],[-0.043,-0.031],[-0.38,-0.021],[-0.339,0.05],[0.273,0.156]],"o":[[-0.066,-0.074],[-0.013,-0.035],[-0.002,-0.044],[0.012,-0.117],[0.035,-0.13],[0.104,-0.261],[0.068,-0.145],[0.034,-0.08],[0,0],[0.267,-0.599],[-0.556,0.385],[0,0],[0,0],[-0.09,0.129],[-0.192,0.29],[-0.07,0.175],[-0.046,0.202],[0.006,0.118],[0.031,0.121],[0.059,0.101],[0,0],[0.042,0.036],[0.324,0.201],[0.342,0.024],[-0.289,-0.193],[-0.249,-0.125]],"v":[[-0.152,1.862],[-0.297,1.607],[-0.319,1.496],[-0.315,1.362],[-0.243,1.018],[-0.11,0.634],[0.27,-0.182],[0.478,-0.629],[0.572,-0.853],[0.661,-1.069],[1.359,-2.909],[-0.099,-1.513],[-0.25,-1.309],[-0.389,-1.105],[-0.657,-0.704],[-1.151,0.214],[-1.321,0.753],[-1.381,1.367],[-1.327,1.717],[-1.178,2.06],[-0.966,2.339],[-0.841,2.452],[-0.71,2.547],[0.363,2.884],[1.387,2.845],[0.519,2.355]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.239215701234,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.931,60.926],"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":"Group 16","np":4,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.006,-0.01],[0.373,-0.666],[0.132,-0.726],[-0.085,-0.23],[-0.7,-0.167],[0,0]],"o":[[-0.455,0.612],[-0.344,0.64],[-0.055,0.24],[0.329,0.763],[0,0],[-0.007,0.009]],"v":[[1.082,-2.849],[-0.161,-0.929],[-1.074,1.081],[-1.027,1.801],[1.13,2.877],[1.102,-2.877]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870588295133,0.466666696586,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.188,60.894],"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":"Group 17","np":4,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.061,0.023],[0,0],[0.24,-0.014],[0.175,-0.007],[0.662,0.926],[-0.002,0.573],[0,0],[-0.007,0.075],[-0.004,0.054],[-0.87,-0.13],[-0.341,-0.604],[-0.023,-0.319],[0,0]],"o":[[0,0],[-0.229,-0.073],[-0.158,0.003],[-1.113,0.045],[-0.326,-0.457],[0,0],[0,-0.042],[0.006,-0.061],[0.84,0.883],[0.798,0.12],[0.142,0.287],[0,0],[-0.055,-0.034]],"v":[[2.223,1.44],[2.208,1.434],[1.499,1.345],[0.997,1.362],[-2.163,0.537],[-2.487,-1.143],[-2.487,-1.205],[-2.473,-1.387],[-2.458,-1.56],[0.456,-0.271],[2.143,0.576],[2.394,1.493],[2.398,1.526]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.021,0.184],[0.161,0.316],[0.683,0.102],[0.77,1.077],[0,0],[0.013,-0.129],[0,-0.052],[0,0],[-0.378,-0.53],[-1.181,0.048],[-0.156,0.003],[-0.197,-0.061],[0,0],[0,0],[-0.065,-0.064],[-0.03,-0.087],[0,0],[0,0]],"o":[[-0.027,-0.354],[-0.433,-0.769],[-0.925,-0.139],[0,0],[0.036,0.067],[-0.008,0.084],[0,0],[-0.002,0.615],[0.75,1.049],[0.173,-0.007],[0.205,-0.013],[0,0],[0,0],[0.087,0.029],[0.066,0.064],[0,0],[0,0],[-0.045,-0.18]],"v":[[2.672,1.454],[2.387,0.439],[0.498,-0.548],[-2.518,-2.073],[-2.747,-1.911],[-2.753,-1.414],[-2.768,-1.205],[-2.768,-1.143],[-2.393,0.7],[1.007,1.642],[1.504,1.626],[2.112,1.698],[2.16,1.566],[2.123,1.702],[2.354,1.844],[2.499,2.073],[2.771,2.001],[2.771,2]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.12,54.611],"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":"Group 18","np":6,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.727,0.109],[0.732,1.024],[0,-0.162],[-0.365,-0.511],[-1.192,0.021],[-0.212,-0.068],[0,0],[-0.08,-0.081],[-0.035,-0.109],[0.279,0.496]],"o":[[-1.194,-0.179],[0.092,0.129],[-0.001,0.601],[0.813,1.138],[0.222,-0.014],[0,0],[0.108,0.036],[0.08,0.081],[-0.14,-0.524],[-0.39,-0.693]],"v":[[0.481,-0.433],[-2.628,-2.014],[-2.623,-1.229],[-2.274,0.595],[1.506,1.462],[2.164,1.543],[2.177,1.548],[2.463,1.727],[2.639,2.014],[2.269,0.484]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.116,54.635],"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":"Group 19","np":4,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.963,-0.089],[0.244,-0.132],[0.17,-0.22],[-0.31,-0.123],[-0.392,-0.081],[-0.421,-0.255],[-0.395,-0.321],[0.349,0.617]],"o":[[-0.277,0.023],[-0.245,0.132],[-0.302,0.404],[0.377,0.15],[0.482,0.101],[0.434,0.261],[0.048,-0.707],[-0.528,-0.91]],"v":[[-0.631,-1.692],[-1.422,-1.457],[-2.052,-0.923],[-1.379,0.031],[-0.205,0.287],[1.159,0.825],[2.306,1.781],[1.845,-0.249]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870588295133,0.466666696586,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.272,54.097],"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":"Group 20","np":4,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.138,-0.131],[0.087,-0.075],[1.583,-0.181],[1.439,0.492],[0,0],[0.591,0],[0.112,-0.018],[-0.556,0.405],[-0.551,-0.339],[-2.774,0.889]],"o":[[-0.13,0.123],[-1.219,1.027],[-1.51,0.181],[0,0],[-0.48,-0.163],[-0.113,0],[0.508,-0.465],[0.302,-0.219],[2.673,1.643],[-0.152,0.134]],"v":[[5.349,-0.777],[5.021,-0.473],[0.725,1.379],[-3.757,0.906],[-3.796,0.893],[-5.488,0.521],[-5.827,0.547],[-4.23,-0.759],[-2.789,-0.957],[5.788,-1.185]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.274,-0.088],[2.587,1.592],[0.619,-0.449],[0.709,-0.708],[0,0],[-0.814,-0.276],[0,0],[-1.15,-0.003],[-0.407,0.051],[-1.26,1.063],[-0.132,0.125],[-0.284,0.089]],"o":[[-0.267,0.083],[-2.735,0.877],[-0.512,-0.314],[-0.808,0.592],[0,0],[0.663,-0.658],[0,0],[1.089,0.37],[0.41,0],[1.638,-0.188],[0.092,-0.079],[0.358,-0.34],[0,0]],"v":[[6.59,-1.734],[5.78,-1.477],[-2.643,-1.197],[-4.395,-0.988],[-6.674,0.965],[-6.477,1.164],[-3.885,1.159],[-3.846,1.172],[-0.466,1.734],[0.76,1.659],[5.204,-0.259],[5.542,-0.573],[6.674,-1.466]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.115,56.375],"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":"Group 21","np":6,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.902,1.785],[0.471,-0.342],[0.704,-0.703],[-0.839,-0.284],[-1.531,0.183],[-1.239,1.046],[-0.423,0.131]],"o":[[-0.536,-0.33],[-0.802,0.587],[0.737,-0.73],[1.459,0.498],[1.611,-0.183],[0.353,-0.303],[-2.975,0.928]],"v":[[-2.744,-1.127],[-4.342,-0.924],[-6.605,1.014],[-3.83,0.989],[0.714,1.468],[5.083,-0.417],[6.605,-1.651]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.144,56.426],"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":"Group 22","np":4,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.443,0.247],[1.772,-0.253],[0.993,-1.486],[-0.571,-0.06],[-0.672,-0.12],[-1.193,0.237],[-0.947,0.424],[-0.53,0.213],[-0.129,-0.009]],"o":[[-1.551,-0.936],[-1.76,0.251],[-0.413,0.617],[0.678,0.072],[1.197,0.215],[1.029,-0.172],[0.525,-0.236],[0.115,-0.058],[-0.197,-0.467]],"v":[[4.717,-0.983],[-0.688,-1.879],[-5.292,0.822],[-4.818,1.65],[-2.796,1.917],[0.821,1.884],[3.754,0.886],[5.332,0.195],[5.705,0.119]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870588295133,0.466666696586,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.074,54.616],"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":"Group 23","np":4,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.369,0.726],[0.726,4.369],[4.369,-0.727],[-0.726,-4.369]],"o":[[4.369,-0.727],[-0.726,-4.369],[-4.369,0.726],[0.726,4.369]],"v":[[1.315,7.911],[7.911,-1.314],[-1.315,-7.911],[-7.911,1.314]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.870588295133,0.466666696586,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[32.565,65.797],"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":"Group 24","np":4,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.185,-0.146],[0.692,0.248],[0,0],[0.593,0.037],[0.226,0.032],[0.172,0.326],[-0.004,0.112],[-0.057,0.096],[-0.068,0.079],[-1.541,-0.472],[-0.11,-0.99]],"o":[[-0.486,0.384],[0,0],[-0.565,-0.185],[-0.215,-0.022],[-0.515,-0.071],[-0.052,-0.1],[0.003,-0.112],[0.048,-0.093],[0.757,-0.888],[1.272,0.39],[0.048,0.43]],"v":[[2.981,1.714],[0.516,1.388],[0.396,1.345],[-1.348,1.012],[-2.012,0.936],[-3.178,0.26],[-3.251,-0.063],[-3.16,-0.381],[-2.986,-0.64],[0.98,-1.357],[3.187,0.847]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.494,0.458],[0.91,-1.068],[0.068,-0.134],[0.003,-0.201],[-0.093,-0.179],[-0.534,-0.075],[-0.22,-0.022],[-0.523,-0.168],[0,0],[-0.687,0],[-0.264,0.19],[0.07,0.635]],"o":[[-1.773,-0.544],[-0.098,0.113],[-0.097,0.177],[-0.002,0.202],[0.315,0.597],[0.237,0.032],[0.548,0.033],[0,0],[0.602,0.215],[0.325,0.016],[0.346,-0.273],[-0.136,-1.219]],"v":[[1.144,-1.894],[-3.413,-1.004],[-3.663,-0.632],[-3.814,-0.057],[-3.675,0.522],[-2.09,1.493],[-1.405,1.571],[0.208,1.874],[0.326,1.917],[2.421,2.422],[3.33,2.154],[3.746,0.785]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[10.648,48.637],"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":"Group 25","np":6,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.617,-1.898],[0.057,-0.114],[-0.84,-0.116],[-0.805,-0.287],[0.231,2.082]],"o":[[-0.084,0.096],[-0.471,0.945],[0.828,0.116],[1.095,0.39],[-0.304,-2.73]],"v":[[-11.749,-0.911],[-11.962,-0.595],[-10.602,1.125],[-8.249,1.521],[-5.084,0.727]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.026,-0.156],[0.136,-0.049],[0.853,0.098],[0.32,0.011],[1.645,-0.187],[0.32,-0.06],[0.6,0.481],[-0.041,0.239],[-0.833,0.287],[-0.084,0.025],[-1.676,-0.279],[-0.836,-0.672]],"o":[[-0.026,0.159],[-0.651,0.236],[-0.38,-0.043],[-1.655,-0.055],[-0.281,0.032],[-0.957,0.178],[-0.229,-0.182],[0.112,-0.647],[0.083,-0.028],[1.76,-0.517],[1.708,0.285],[0.253,0.204]],"v":[[11.817,1.082],[11.424,1.397],[8.954,1.425],[7.896,1.33],[2.938,1.528],[2.035,1.676],[-0.607,1.576],[-0.883,0.959],[1.07,-0.745],[1.321,-0.825],[7.375,-1.05],[11.437,0.479]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0.432,0.348],[1.798,0.3],[1.926,-0.566],[0.091,-0.031],[0,0],[0.154,-0.891],[-0.491,-0.393],[-0.534,0],[-0.548,0.119],[-0.261,0.029],[-1.628,-0.053],[-0.368,-0.042],[-0.776,0.281],[-0.038,0.232]],"o":[[-0.907,-0.73],[-1.687,-0.281],[-0.093,0.027],[0,0],[-1.02,0.351],[-0.053,0.309],[0.397,0.318],[0.56,-0.02],[0.31,-0.058],[1.618,-0.184],[0.297,0.01],[0.914,0.105],[0.555,-0.201],[0.062,-0.372]],"v":[[11.789,0.041],[7.468,-1.604],[1.163,-1.364],[0.888,-1.276],[0.887,-1.276],[-1.436,0.863],[-0.958,2.015],[0.473,2.437],[2.138,2.228],[3.001,2.086],[7.877,1.891],[8.89,1.983],[11.616,1.925],[12.371,1.174]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.198,48.726],"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":"Group 26","np":7,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.531,0.428],[1.461,0.244],[1.762,-0.517],[0.087,-0.03],[-1.151,-0.92],[-1.156,0.131],[-1.642,-0.054],[-1.012,0.367]],"o":[[-1.001,-0.805],[-1.787,-0.298],[-0.088,0.026],[-1.267,0.436],[0.916,0.733],[1.632,-0.185],[1.046,0.036],[0.889,-0.322]],"v":[[6.376,-0.192],[2.184,-1.778],[-3.995,-1.546],[-4.258,-1.463],[-6.021,1.343],[-2.269,1.355],[2.65,1.158],[6.283,1.209]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24.434,49.178],"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":"Group 27","np":4,"cix":2,"bm":0,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.046,-0.017],[0,0]],"o":[[0,0],[0.043,0.025]],"v":[[-23.762,-12.948],[-23.898,-13.011]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.901,6.402],[0.835,3.226],[0.033,3.772],[2.094,-1.275],[0.775,-0.512],[2.937,-1.221],[3.589,-1.139],[1.761,-0.184],[0.881,-0.056],[0.39,0.099],[0.319,0.119],[-0.395,-0.184],[-0.338,-0.218],[-0.576,-0.472],[-0.89,-2.42],[-0.302,-0.996],[-0.146,-0.97],[-0.158,-2.176],[-0.922,1.593],[-2.464,-6.218],[0.778,-2.758],[0.848,-3.635],[0.529,-2.665],[-0.426,-2.004],[-0.465,-0.13],[-0.37,0.45],[-0.396,0.427],[-0.724,0.201],[-0.805,0.438],[-3.148,1.532],[-2.269,0.781],[-0.305,0.823],[0.168,0.69]],"o":[[-0.467,-3.316],[-0.931,-3.599],[-2.113,1.236],[-0.797,0.486],[-2.646,1.759],[-3.475,1.445],[-1.691,0.527],[-0.878,0.097],[-0.402,0.014],[-0.299,-0.063],[0.395,0.184],[0.369,0.16],[0.612,0.421],[2.012,1.647],[0.359,0.976],[0.288,0.947],[0.323,2.156],[-0.14,-1.929],[1.482,-2.558],[1.142,2.867],[-1.014,3.591],[-0.617,2.645],[-0.391,1.971],[0.101,0.473],[0.562,0.157],[0.37,-0.451],[0.622,-0.672],[0.88,-0.243],[3.075,-1.673],[2.155,-1.048],[0.9,-0.31],[0.247,-0.668],[-1.522,-6.239]],"v":[[17.536,-6.848],[16.536,-16.847],[14.066,-27.738],[7.704,-24.028],[5.346,-22.532],[-3.076,-17.87],[-13.639,-13.887],[-18.829,-12.818],[-21.467,-12.624],[-22.66,-12.753],[-23.762,-12.948],[-22.577,-12.396],[-21.515,-11.827],[-19.816,-10.356],[-15.525,-4.006],[-14.512,-1.054],[-13.984,1.752],[-13.262,8.251],[-10.303,1.217],[4.398,-8.524],[2.776,1.179],[-0.018,12.02],[-1.737,19.984],[-2.661,26.518],[-1.783,27.58],[-0.268,26.923],[0.742,25.497],[2.723,24.906],[5.358,23.47],[14.656,18.592],[21.249,15.719],[23.65,14.551],[23.041,11.447]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.533333333333,0.313725490196,0.603921568627,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[49.188,101.923],"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":"Group 28","np":6,"cix":2,"bm":0,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.553,11.419],[1.066,5.661],[1.354,1.25],[1.641,1.71],[0.17,3.051],[0.042,0.906],[3.716,-0.296],[3.388,1.325],[3.74,4.856],[2.16,-3.57],[0.524,-8.476],[-14.56,-4.353],[-1.934,-4.936],[-0.261,-4.658],[-0.357,-6.369],[-2.06,-1.622],[-2.381,-0.462],[-3.394,0.715],[-3.993,2.961],[-1.294,1.805],[-0.077,1.227],[0.319,0.982]],"o":[[-1.257,-5.622],[-0.336,-1.783],[-1.69,-1.56],[-2.117,-2.204],[-0.051,-0.906],[-0.195,-4.208],[-3.666,0.293],[-5.72,-2.237],[-1.156,-1.501],[-4.494,7.428],[-0.782,12.634],[4.755,1.422],[1.701,4.344],[0.356,6.369],[0.138,2.476],[1.914,1.509],[3.405,0.661],[4.923,-1.037],[1.792,-1.311],[0.71,-1.003],[0.065,-1.031],[-3.623,-11.132]],"v":[[24.303,6.424],[20.66,-10.492],[18.983,-14.689],[13.476,-18.885],[9.623,-26.991],[9.601,-29.711],[4.479,-34.79],[-6.449,-37.062],[-19.749,-47.956],[-27.678,-54.773],[-33.167,-27.749],[-18.079,6.335],[-7.999,14.91],[-5.756,28.661],[-4.686,47.768],[-3.118,54.711],[3.592,57.682],[13.917,57.199],[27.81,51.425],[32.467,46.722],[33.884,43.37],[33.301,40.348]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.760784373564,0.988235353956,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[41.594,82.077],"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":"Group 29","np":4,"cix":2,"bm":0,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.224,-2.546],[-5.387,-6.811],[-1.685,-0.624],[-2.001,1.076],[-1.171,3.074],[3.569,4.093]],"o":[[-7.91,4.768],[1.108,1.401],[2.35,0.87],[3.064,-1.647],[1.915,-5.025],[-2.921,-3.349]],"v":[[-3.846,-12.471],[-7.005,10.984],[-2.817,14.147],[3.799,13.574],[10.477,5.542],[8.219,-9.176]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843197093,0.533333333333,0.121568634931,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[15.278,56.722],"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":"Group 30","np":4,"cix":2,"bm":0,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.45,7.905],[6.324,0.36],[0.45,-7.905],[-6.324,-0.36]],"o":[[0.449,-7.906],[-6.324,-0.36],[-0.45,7.905],[6.324,0.359]],"v":[[11.452,0.652],[0.814,-14.313],[-11.451,-0.652],[-0.814,14.314]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.929411824544,0.772549079446,0.258823529412,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[14.44,56.765],"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":"Group 31","np":4,"cix":2,"bm":0,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.45,7.905],[6.324,0.36],[0.449,-7.905],[-6.324,-0.36]],"o":[[0.449,-7.906],[-6.324,-0.36],[-0.45,7.906],[6.324,0.36]],"v":[[11.452,0.652],[0.814,-14.314],[-11.451,-0.652],[-0.814,14.314]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.894117706897,0.866666726505,0.298039215686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[12.15,56.634],"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":"Group 32","np":4,"cix":2,"bm":0,"ix":32,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Layer 16 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[215.113,214.423,0],"ix":2},"a":{"a":0,"k":[3.617,40.482,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.446,-3.805],[0.795,-9.05],[-0.508,0.295],[1.068,9.116],[0.684,3.799],[-0.004,6.499],[0,0],[0.118,0.118],[0.168,0.001],[0.119,-0.118],[0,-0.168],[0,0],[-1.171,-6.499]],"o":[[1.115,9.518],[0.397,-0.568],[0.667,-8.685],[-0.451,-3.843],[-1.162,-6.444],[0,0],[0,-0.168],[-0.118,-0.119],[-0.168,0],[-0.118,0.119],[0,0],[-0.005,6.613],[0.681,3.781]],"v":[[0.848,12.46],[1.33,40.233],[2.699,38.944],[2.102,12.313],[0.259,0.741],[-2.099,-18.866],[-2.083,-39.599],[-2.268,-40.047],[-2.715,-40.233],[-3.161,-40.047],[-3.346,-39.6],[-3.362,-18.867],[-0.984,0.965]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[3.617,40.483],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Layer 15 Outlines","parent":17,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0.472]},"t":0,"s":[-0.265]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":6.859,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":45.141,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":65.346,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":84.486,"s":[-1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":103.627,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":122.768,"s":[-1]},{"i":{"x":[0.667],"y":[0.549]},"o":{"x":[0.333],"y":[0]},"t":138.719,"s":[1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0.541]},"t":150,"s":[-0.265]},{"t":157.859375,"s":[-1]}],"ix":10},"p":{"a":0,"k":[14.636,53.726,0],"ix":2},"a":{"a":0,"k":[14.867,59.236,0],"ix":1},"s":{"a":0,"k":[100,103.079,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.854,2.613],[-0.379,8.353],[2.588,5.402],[5.501,1.911],[5.823,0.049],[9.258,-8.077],[-1.652,-4.279],[0.514,-4.562],[0.197,-4.05],[-0.413,-5.161],[2.879,-5.64],[-0.823,-2.036],[-2.146,-0.404],[-3.471,-0.425],[-3.193,0.428],[-1.839,0.436],[-0.484,0.123],[-2.489,0.759],[-4.632,0.018],[-4.073,5.061],[-0.092,1.783],[2.577,4.596]],"o":[[-4.838,-6.82],[0.271,-5.984],[-2.516,-5.251],[-5.5,-1.912],[-12.285,-0.103],[0.987,4.491],[1.57,4.065],[-0.45,4],[-0.254,5.191],[0.505,6.312],[-0.998,1.956],[1.057,2.612],[3.415,0.643],[3.203,0.393],[1.826,-0.244],[0.502,-0.119],[2.493,-0.633],[4.459,-1.361],[5.456,-0.022],[1.119,-1.392],[0.273,-5.262],[-1.566,-2.795]],"v":[[31.605,8.837],[26.952,-15.326],[25.049,-32.996],[11.928,-43.829],[-5.309,-46.132],[-40.07,-36.663],[-35.753,-23.003],[-31.954,-10.421],[-34.503,1.297],[-33.385,16.892],[-35.895,35.474],[-37.423,41.654],[-30.624,43.852],[-20.432,45.842],[-10.533,45.544],[-4.934,44.469],[-3.453,44.105],[3.719,41.003],[17.986,40.363],[38.244,36.951],[39.596,31.862],[37.492,16.418]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274539723,0.84313731474,0.949019667682,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[56.467,64.488],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.393,2.781],[0,0],[-4.545,7.291],[0,0],[-1.196,-8.399],[0,0],[-1.079,-3.204],[3.993,-5.943],[0.888,-1.11],[-1.35,-5.459],[-0.78,-1.371],[-1.614,-2.498],[0,0],[1.465,2.572],[0.326,1.314],[-2.944,3.679],[-0.791,1.178],[2.426,7.203]],"o":[[0,0],[-1.175,-8.25],[0,0],[-4.708,7.552],[0,0],[0.404,2.858],[2.36,7.009],[-0.772,1.149],[-3.071,3.838],[0.352,1.42],[1.473,2.584],[0,0],[-1.606,-2.486],[-0.749,-1.314],[-1.251,-5.056],[0.899,-1.123],[4.225,-6.288],[-1.066,-3.166]],"v":[[-0.525,-16.168],[-0.657,-17.092],[1.499,-41.165],[0.784,-41.612],[-1.492,-16.974],[-1.36,-16.049],[1.143,-6.961],[1.951,13.239],[-0.628,16.645],[-5.525,29.912],[-3.717,33.952],[0.936,41.612],[1.644,41.155],[-2.985,33.534],[-4.707,29.71],[0.031,17.171],[2.65,13.709],[1.941,-7.23]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.019607843137,0.709803921569,0.976470648074,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.124,64.56],"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":"Group 2","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.13,3.81],[-0.297,4.208],[6.319,10.11],[19.802,-4.802],[5.019,-3.309],[-0.801,-6.794],[-2.633,-7.63],[3.98,-7.488],[2.092,-4.674],[-0.223,-1.52],[-0.559,-1.001],[-1.887,-3.377],[-0.166,-0.104],[-0.229,0.062],[-5.015,-0.999],[-3.359,-0.411],[-3.193,0.428],[-1.84,0.435],[-0.484,0.123],[-2.489,0.759],[-4.632,0.019],[-4.171,0.016],[-1.836,4.66],[2.04,4.941],[-0.242,-3.245],[1.588,-2.84],[0.074,-1.484],[-1.568,-0.391],[0.207,-0.37],[-0.855,2.225],[4.258,6.838]],"o":[[-1.212,-4.084],[0.826,-11.672],[-12.911,-20.659],[-5.801,1.406],[-5.79,3.817],[0.953,8.083],[2.568,7.443],[-2.413,4.539],[-0.627,1.403],[0.167,1.134],[1.887,3.377],[0.078,0.18],[0.213,0.104],[4.97,-1.345],[3.312,0.659],[3.203,0.392],[1.825,-0.245],[0.502,-0.119],[2.493,-0.633],[4.459,-1.36],[4.17,-0.016],[5.226,-0.021],[1.956,-4.965],[1.276,2.993],[0.243,3.245],[-0.707,1.263],[1.602,0.033],[0.468,0.117],[1.165,-2.08],[2.935,-7.639],[-2.057,-3.301]],"v":[[42.703,12.701],[41.862,0.034],[34.928,-34.577],[-27.564,-45.564],[-44.477,-38.936],[-51.885,-23.234],[-45.135,-0.017],[-44.109,22.29],[-52.871,34.761],[-53.799,39.212],[-52.504,42.376],[-46.844,52.507],[-46.469,52.943],[-45.774,52.921],[-29.847,52.785],[-19.926,54.843],[-10.027,54.546],[-4.428,53.471],[-2.947,53.107],[4.225,50.003],[18.492,49.363],[31.004,49.314],[40.142,42.329],[40.073,26.693],[42.572,36.084],[40.695,45.523],[38.793,49.602],[43.366,50.645],[47.898,51.99],[51.087,45.594],[48.447,22.697]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380392186782,0.776470648074,0.929411824544,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[55.961,55.486],"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":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Layer 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[233.072,314.462,0],"ix":2},"a":{"a":0,"k":[70.128,82.97,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.665,-6.81],[4.422,-10.17],[4.454,-14.002],[0.706,-2.549],[-0.695,-8.254],[-16.201,11.338],[-1.788,3.065],[-5.236,18.632],[6.68,16.259]],"o":[[-10.186,5.947],[-5.858,13.474],[-0.798,2.506],[-2.223,8.028],[1.129,13.409],[2.908,-2.034],[9.765,-16.739],[4.547,-16.182],[-4.232,-10.303]],"v":[[3.414,-67.012],[-15.253,-37.918],[-30.731,3.323],[-33.011,10.907],[-36.068,35.404],[-4.356,62.484],[2.292,54.28],[24.5,0.781],[30.083,-52.836]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.682352941176,0.972549079446,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[102.754,91.868],"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":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.172,-5.911],[0.812,-6.003],[-0.946,-7.282],[-0.25,-3.412],[1.214,-4.738],[3.686,-3.228],[0,0],[-1.497,5.844],[0.448,6.128],[0.438,3.374],[-0.985,7.27],[-3.501,6.523],[-3.775,5.279],[0,0]],"o":[[-3.558,6.629],[-1.002,7.4],[0.436,3.361],[0.44,6.022],[-1.447,5.648],[0,0],[3.838,-3.361],[1.241,-4.842],[-0.251,-3.44],[-0.937,-7.219],[0.796,-5.885],[3.145,-5.86],[0,0],[-3.794,5.305]],"v":[[-41.382,-21.585],[-47.878,-2.811],[-46.956,19.4],[-45.82,29.648],[-46.986,45.865],[-54.723,59.241],[-54.074,59.98],[-46.035,46.109],[-44.839,29.577],[-45.982,19.275],[-46.904,-2.679],[-40.516,-21.119],[-29.648,-37.902],[-30.447,-38.475]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[5.566,-10.355],[2.613,-4.213],[2.325,-4.277],[-2.224,-25.116],[0,0],[-11.903,22.007],[-2.513,4.051],[-2.398,4.459],[-0.105,8.608],[0,0]],"o":[[-2.383,4.433],[-2.52,4.063],[-11.996,22.178],[0,0],[-2.206,-24.923],[2.312,-4.253],[2.621,-4.226],[5.643,-10.498],[0,0],[-0.103,8.445]],"v":[[-9.751,-36.279],[-17.449,-23.276],[-24.9,-10.734],[-39.882,61.775],[-38.904,61.686],[-24.038,-10.264],[-16.615,-22.758],[-8.885,-35.813],[-0.343,-64.206],[-1.326,-64.217]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[6.594,-12.287],[2.803,-4.594],[2.801,-5.372],[-1.357,-24.381],[0,0],[-11.172,21.513],[-3.09,5.067],[-2.597,4.839],[-0.163,10.064],[0,0]],"o":[[-2.584,4.815],[-3.099,5.081],[-11.253,21.67],[0,0],[-1.347,-24.203],[2.785,-5.343],[2.81,-4.606],[6.671,-12.431],[0,0],[-0.16,9.902]],"v":[[11.93,-33.845],[3.645,-19.684],[-5.46,-3.979],[-20.576,66.368],[-19.596,66.311],[-4.587,-3.524],[4.484,-19.173],[12.796,-33.38],[22.812,-66.352],[21.829,-66.368]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0.524,1.427],[0.73,2.91],[-1.947,9.012],[-5.429,12.218],[0,0],[0.949,-4.391],[-1.885,-7.515],[-1.032,-2.807],[-0.49,-1.454],[0.983,-11.423],[0,0],[3.684,11]],"o":[[-1.024,-2.783],[-1.848,-7.365],[0.939,-4.349],[0,0],[-5.466,12.301],[-1.979,9.163],[0.743,2.961],[0.523,1.421],[3.64,10.872],[0,0],[0.993,-11.558],[-0.494,-1.468]],"v":[[48.091,26.574],[45.279,18.003],[45.426,-6.335],[53.671,-30.098],[52.773,-30.497],[44.465,-6.544],[44.325,18.242],[47.168,26.913],[48.721,31.258],[52.75,65.055],[53.73,65.141],[49.652,30.945]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-4.628,9.09],[-0.564,1.075],[-0.058,7.671],[0,0],[3.493,-6.663],[0.557,-1.094],[1.552,-8.775],[-2.535,-8.585],[-2.407,-5.009],[-1.204,-7.207],[0,0],[3.17,6.599],[1.572,5.326],[-1.754,9.913]],"o":[[0.554,-1.089],[3.547,-6.766],[0,0],[-0.056,7.433],[-0.565,1.077],[-4.672,9.177],[-1.78,10.064],[1.594,5.402],[3.14,6.536],[0,0],[-1.228,-7.344],[-2.39,-4.974],[-2.491,-8.438],[1.535,-8.679]],"v":[[32.411,-24.764],[34.112,-28.04],[41.385,-49.473],[40.403,-49.481],[33.241,-28.496],[31.535,-25.21],[22.155,1.844],[23.292,29.949],[29.781,45.54],[37.372,66.042],[38.342,65.879],[30.667,45.113],[24.234,29.671],[23.122,2.015]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.027450982262,1,0.996078491211,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[75.778,69.876],"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":"Group 2","np":9,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.195,14.334],[1.234,1.398],[1.435,0.644],[3.326,4.344],[0.956,1.786],[0.752,1.901],[0.26,0.258],[0.294,0.125],[0.742,0.003],[0.238,-1.673],[0.002,-0.403],[-0.069,0.405],[0.435,0.53],[0.616,0.302],[0.572,-1.196],[0.052,-0.316],[-0.081,-0.397],[-0.066,0.447],[1.511,0.88],[0.186,0.017],[0.202,-0.165],[0.493,-1.682],[-0.134,-0.523],[-0.17,0.599],[-0.005,0.016],[2.316,-3.494],[0.047,-3.364],[1.469,-5.017],[5.46,-9.096],[1.623,-16.768],[-1.733,-8.291],[-0.501,-0.454],[-0.767,-0.02],[-2.788,0.047],[-3.21,-0.635],[-4.6,-0.345],[-9.1,-0.222],[-3.64,10.449],[0.326,16.512]],"o":[[-0.283,-1.844],[-1.041,-1.18],[-4.934,-2.218],[-1.24,-1.619],[-0.953,-1.781],[-0.126,-0.344],[-0.241,-0.21],[-0.673,-0.314],[-1.446,-0.005],[0.106,0.39],[-0.171,-0.373],[-0.176,-0.663],[-0.435,-0.531],[-0.96,0.914],[-0.14,0.288],[0.145,0.378],[-0.337,-0.282],[-0.625,-1.633],[-0.155,-0.104],[-0.261,-0.004],[-1.354,1.112],[0.251,0.477],[-0.619,0.063],[0.005,-0.016],[-1.771,-3.373],[-1.945,2.934],[-0.08,5.226],[-2.967,10.246],[-8.671,14.444],[-0.816,8.43],[0.139,0.661],[0.569,0.515],[2.598,0.07],[3.515,-0.059],[4.349,0.86],[9.108,0.683],[11.005,0.303],[5.477,-15.726],[-0.285,-14.384]],"v":[[42.751,-38.095],[40.897,-43.288],[36.897,-45.717],[23.941,-55.253],[20.695,-60.49],[19.977,-66.375],[19.391,-67.29],[18.583,-67.796],[16.444,-68.347],[12.915,-64.81],[13.073,-63.615],[12.915,-64.81],[11.988,-66.62],[10.395,-67.883],[8.078,-64.692],[7.788,-63.781],[8.126,-62.617],[7.788,-63.781],[4.488,-67.665],[3.967,-67.85],[3.273,-67.526],[0.437,-63.238],[1.017,-61.733],[0.421,-63.189],[0.437,-63.238],[-7.975,-64.75],[-8.544,-53.474],[-10.878,-38.04],[-24.577,-9.265],[-44.372,36.745],[-42.208,61.963],[-41.402,63.783],[-39.227,64.367],[-31.064,64.279],[-20.806,64.898],[-8.047,67.669],[19.225,67.465],[38.854,52.561],[44.862,3.509]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274539723,0.84313731474,0.949019667682,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[86.19,68.601],"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":"Group 3","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.855,8.541],[3.297,21.523],[1.234,1.398],[1.435,0.644],[3.326,4.344],[0.955,1.786],[0.752,1.901],[0.26,0.258],[0.294,0.125],[0.743,0.003],[0.238,-1.673],[0.002,-0.403],[-0.069,0.405],[0.435,0.53],[0.615,0.302],[0.571,-1.196],[0.051,-0.316],[-0.08,-0.397],[-0.066,0.447],[1.51,0.88],[0.186,0.017],[0.202,-0.165],[0.492,-1.687],[-0.134,-0.519],[-0.17,0.599],[-0.003,0.012],[1.765,0.556],[0.658,-0.221],[0.413,-0.592],[0.124,-1.215],[1.853,-0.103],[-0.196,-1.845],[0.777,0.613],[0.921,-0.361],[0.249,-0.914],[0.126,-0.939],[2.514,-3.03],[3.316,-3.165],[5.352,-11.86],[-0.304,-10.021],[6.663,-9.318],[0.613,-1.695],[-1.196,-1.349],[-2.166,0.002],[-0.615,-0.013],[-3.502,-0.504],[-5.632,-0.848],[-6.512,-0.264],[-17.756,-0.398],[-3.177,1.036],[0.378,6.733]],"o":[[-2.17,-21.671],[-0.282,-1.844],[-1.041,-1.18],[-4.934,-2.218],[-1.239,-1.619],[-0.953,-1.781],[-0.126,-0.344],[-0.241,-0.21],[-0.673,-0.314],[-1.445,-0.005],[0.106,0.39],[-0.171,-0.373],[-0.176,-0.663],[-0.434,-0.531],[-0.96,0.914],[-0.141,0.288],[0.144,0.378],[-0.337,-0.282],[-0.625,-1.633],[-0.156,-0.104],[-0.261,-0.004],[-1.359,1.115],[0.254,0.472],[-0.619,0.063],[0.004,-0.011],[-0.87,-1.633],[-0.665,-0.201],[-0.684,0.231],[-0.697,1.003],[-0.936,-1.603],[-1.853,0.102],[-0.523,-0.84],[-0.778,-0.612],[-0.882,0.347],[-0.249,0.914],[-0.545,4.055],[-2.931,3.531],[-9.283,8.859],[-4.218,9.346],[0.334,10.996],[-1.049,1.467],[-0.614,1.696],[1.437,1.62],[0.615,-0.001],[3.537,0.072],[5.637,0.812],[6.444,0.971],[17.745,0.718],[3.341,0.075],[6.83,-2.226],[-0.481,-8.57]],"v":[[62.141,26.846],[53.49,-37.902],[51.636,-43.095],[47.636,-45.524],[34.68,-55.06],[31.436,-60.297],[30.717,-66.182],[30.131,-67.097],[29.324,-67.603],[27.183,-68.154],[23.654,-64.617],[23.812,-63.422],[23.654,-64.617],[22.727,-66.427],[21.135,-67.691],[18.817,-64.499],[18.528,-63.588],[18.865,-62.424],[18.528,-63.588],[15.228,-67.472],[14.707,-67.657],[14.013,-67.333],[11.172,-63.031],[11.757,-61.54],[11.161,-62.996],[11.172,-63.031],[7.061,-66.446],[5.013,-66.523],[3.384,-65.152],[2.132,-61.77],[-2.412,-64.482],[-5.806,-60.843],[-7.644,-63.153],[-10.42,-63.73],[-12.108,-61.573],[-12.485,-58.76],[-18.89,-48.292],[-28.427,-38.383],[-50.722,-9.339],[-54.326,20.661],[-61.12,49.558],[-63.94,54.152],[-63.317,59.267],[-57.249,60.924],[-55.404,60.942],[-44.835,61.805],[-28.022,64.831],[-8.541,66.353],[44.71,68.025],[54.645,67.123],[64.176,52.515]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274539723,0.84313731474,0.949019667682,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[75.45,68.409],"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":"Group 4","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.564,2.782],[1.079,4.56],[6.434,0.883],[8.105,0.592],[10.945,0.009],[3.131,-7.096],[0.053,-2.856],[-7.559,-4.788],[-3.227,-0.912],[-2.276,-0.496],[-6.829,-0.514],[-3.26,0.06],[-2.692,0.636],[-3.142,-0.601],[-3.33,0.448],[-2.555,0.878],[-0.668,1.822],[0.305,0.759]],"o":[[-0.998,-4.892],[-2.088,-8.83],[-8.067,-1.106],[-10.925,-0.798],[-6.672,-0.005],[-1.113,2.522],[-0.191,10.284],[2.934,1.858],[2.24,0.633],[6.693,1.465],[3.264,0.245],[2.822,-0.052],[3.213,-0.759],[3.281,0.627],[2.678,-0.36],[1.57,-0.54],[0.301,-0.821],[-1.057,-2.634]],"v":[[46.542,8.493],[45.667,-6.699],[25.55,-20.508],[1.211,-20.799],[-31.298,-26.02],[-48.622,-16.545],[-50.223,-8.275],[-37.88,16.976],[-28.49,20.821],[-21.714,22.515],[-1.383,25.387],[8.558,25.965],[16.535,23.288],[25.705,23.923],[35.684,24.483],[43.494,22.361],[50.114,19.286],[48.977,16.634]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.486274539723,0.84313731474,0.949019667682,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83.284,129.528],"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":"Group 5","np":4,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.687,9.282],[2.834,4.574],[7.07,-12.111],[2.987,-8.935],[7.848,-13.768],[0.979,-9.43],[-6.095,-4.85],[-1.322,-0.583],[-3.409,0.124],[-7.812,6.95],[-5.796,8.703],[-0.86,2.805],[-0.555,3.452],[-0.19,3.552],[0,4.164]],"o":[[-0.398,-5.367],[-7.666,-12.369],[-4.895,8.387],[-5.024,15.03],[-4.695,8.237],[-0.826,7.969],[1.129,0.901],[3.123,1.373],[10.45,-0.383],[7.813,-6.949],[1.627,-2.442],[1.025,-3.343],[0.572,-3.55],[0.22,-4.122],[0,-9.308]],"v":[[37.891,-39.062],[33.958,-54.551],[0.789,-54.148],[-7.243,-27.661],[-27.919,15.061],[-38.424,41.259],[-30.452,62.914],[-26.758,65.149],[-16.745,66.796],[11.352,54.307],[31.007,29.975],[35.126,22.233],[36.572,11.863],[39.029,1.496],[38.971,-11.163]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.988235353956,0.682352941176,0.972549079446,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.499,81.038],"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":"Group 6","np":4,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.264,-1.263],[1.787,-0.002],[0,0],[1.264,1.264],[0.002,1.787],[0,0],[-1.264,1.264],[-1.787,0.002],[0,0],[-1.264,-1.263],[-0.002,-1.787]],"o":[[-0.002,1.787],[-1.264,1.264],[0,0],[-1.787,-0.002],[-1.264,-1.263],[0,0],[0.002,-1.787],[1.264,-1.263],[0,0],[1.787,0.002],[1.264,1.264],[0,0]],"v":[[32.58,3.956],[30.604,8.721],[25.839,10.698],[-25.839,10.698],[-30.603,8.721],[-32.579,3.956],[-32.579,-3.956],[-30.603,-8.72],[-25.839,-10.697],[25.839,-10.697],[30.604,-8.72],[32.58,-3.956]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.936,0.002],[0,0],[1.369,-1.369],[0.002,-1.936],[0,0],[-1.369,-1.369],[-1.936,-0.002],[0,0],[-1.369,1.369],[-0.002,1.936],[0,0],[1.369,1.369]],"o":[[0,0],[-1.936,0.002],[-1.369,1.369],[0,0],[0.002,1.936],[1.369,1.369],[0,0],[1.936,-0.002],[1.369,-1.369],[0,0],[-0.002,-1.936],[-1.369,-1.369]],"v":[[25.839,-11.258],[-25.839,-11.258],[-31,-9.117],[-33.141,-3.956],[-33.141,3.956],[-31,9.118],[-25.839,11.258],[25.839,11.258],[31.001,9.118],[33.141,3.956],[33.141,-3.956],[31.001,-9.117]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.282,91.589],"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":"Group 7","np":6,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.878,0],[0,0],[0,-3.878],[0,0],[-3.878,0],[0,0],[0,3.877],[0,0]],"o":[[0,0],[-3.878,0],[0,0],[0,3.877],[0,0],[3.878,0],[0,0],[0,-3.878]],"v":[[25.839,-10.978],[-25.839,-10.978],[-32.861,-3.956],[-32.861,3.957],[-25.839,10.978],[25.839,10.978],[32.861,3.957],[32.861,-3.956]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.282,91.59],"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":"Group 8","np":4,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":0,"nm":"girl-movinglines 2","parent":22,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":180,"ix":10},"p":{"a":0,"k":[177,-38.5,0],"ix":2},"a":{"a":0,"k":[180,47,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":360,"h":94,"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":22,"ty":0,"nm":"girl-movinglines","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[239,235.75,0],"ix":2},"a":{"a":0,"k":[180,47,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":360,"h":94,"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Layer 3 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[236.616,234.602,0],"ix":2},"a":{"a":0,"k":[156.322,158.159,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.878,0],[0,0],[0,-3.877],[0,0],[-3.878,0],[0,0],[0,3.878],[0,0]],"o":[[0,0],[-3.878,0],[0,0],[0,3.878],[0,0],[3.878,0],[0,0],[0,-3.877]],"v":[[11.964,-11.024],[-11.963,-11.024],[-18.985,-4.003],[-18.985,4.001],[-11.963,11.023],[11.964,11.023],[18.985,4.001],[18.985,-4.003]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.474509833841,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[225.819,247.662],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.863,0],[0,0],[-1.317,-1.317],[0,-1.862],[0,0],[1.317,-1.317],[1.862,0],[0,0],[1.316,1.317],[0,1.862],[0,0],[-1.317,1.316]],"o":[[0,0],[1.862,0],[1.317,1.316],[0,0],[0,1.862],[-1.317,1.317],[0,0],[-1.863,0],[-1.317,-1.317],[0,0],[0,-1.862],[1.316,-1.317]],"v":[[-15.025,-11.024],[15.025,-11.024],[19.991,-8.967],[22.047,-4.003],[22.047,4.001],[19.991,8.966],[15.025,11.023],[-15.025,11.023],[-19.99,8.966],[-22.047,4.001],[-22.047,-4.003],[-19.99,-8.967]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078491211,0.474509833841,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[97.826,247.662],"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":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.696,0],[0,0],[0,-11.696],[0,0],[-11.696,0],[0,0],[0,11.696],[0,0]],"o":[[0,0],[-11.696,0],[0,0],[0,11.696],[0,0],[11.696,0],[0,0],[0,-11.696]],"v":[[56.269,-95.535],[-56.268,-95.535],[-77.446,-74.358],[-77.446,74.358],[-56.268,95.535],[56.269,95.535],[77.446,74.358],[77.446,-74.358]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.721568627451,0.274509803922,0.925490255917,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.758,122.731],"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":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-5.617,0],[0,0],[-2.569,-1.064],[-1.967,-1.967],[-1.065,-2.569],[0,-2.781],[0,0],[3.971,-3.972],[5.617,0],[0,0],[3.971,3.971],[0,5.617],[0,0],[-3.972,3.971]],"o":[[0,0],[2.781,0],[2.57,1.064],[1.966,1.966],[1.064,2.57],[0,0],[0,5.617],[-3.972,3.971],[0,0],[-5.617,0],[-3.972,-3.972],[0,0],[0,-5.616],[3.971,-3.972]],"v":[[-62.722,-103.497],[62.722,-103.497],[70.826,-101.884],[77.697,-97.294],[82.288,-90.423],[83.9,-82.32],[83.9,82.32],[77.697,97.295],[62.722,103.497],[-62.722,103.497],[-77.697,97.295],[-83.9,82.32],[-83.9,-82.32],[-77.697,-97.294]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.294117647059,0.086274509804,0.737254901961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.68,123.343],"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":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.064,-2.57],[-1.967,-1.966],[-2.569,-1.065],[-2.781,0],[0,0],[-2.57,1.064],[-1.966,1.967],[-1.064,2.569],[0,2.781],[0,0],[0,0]],"o":[[0,2.781],[1.064,2.569],[1.966,1.967],[2.569,1.064],[0,0],[2.782,0],[2.569,-1.065],[1.967,-1.966],[1.064,-2.57],[0,0],[0,0],[0,0]],"v":[[-98.598,52.836],[-96.986,60.941],[-92.395,67.811],[-85.525,72.402],[-77.421,74.014],[77.419,74.014],[85.524,72.402],[92.394,67.811],[96.985,60.941],[98.598,52.836],[98.598,-74.014],[-98.598,-74.014]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470588265213,0.160784313725,0.862745157878,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.68,222.641],"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":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.695,0],[0,0],[0,-11.696],[0,0],[-11.696,0],[0,0],[0,11.696],[0,0]],"o":[[0,0],[-11.696,0],[0,0],[0,11.696],[0,0],[11.695,0],[0,0],[0,-11.696]],"v":[[77.421,-148.202],[-77.42,-148.202],[-98.597,-127.025],[-98.597,127.026],[-77.42,148.203],[77.421,148.203],[98.597,127.026],[98.597,-127.025]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.470588265213,0.160784313725,0.862745157878,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.68,148.453],"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":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[11.696,0],[0,0],[0,-11.696],[0,0],[-11.696,0],[0,0],[0,11.696],[0,0]],"o":[[0,0],[-11.696,0],[0,0],[0,11.696],[0,0],[11.696,0],[0,0],[0,-11.696]],"v":[[78.645,-147.59],[-78.645,-147.59],[-99.822,-126.413],[-99.822,126.413],[-78.645,147.59],[78.645,147.59],[99.822,126.413],[99.822,-126.413]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.074509803922,0.007843137255,0.654901960784,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[166.212,147.84],"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":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-69.451,0],[0,67.357],[69.451,0],[0,-67.357]],"o":[[69.451,0],[0,-67.357],[-69.451,0],[0,67.357]],"v":[[0,121.96],[125.752,0.001],[0,-121.96],[-125.752,0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.380392186782,0.125490196078,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[159.838,158.106],"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":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-86.196,0],[0,86.196],[86.196,0],[0,-86.196]],"o":[[86.196,0],[0,-86.196],[-86.196,0],[0,86.196]],"v":[[0,156.072],[156.072,0],[0,-156.072],[-156.072,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.827451040231,0.427451010311,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[156.322,159.997],"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":"Group 9","np":2,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Layer 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[236.5,236.5,0],"ix":2},"a":{"a":0,"k":[172.75,172.75,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ef":[{"ty":29,"nm":"Gaussian Blur","np":5,"mn":"ADBE Gaussian Blur 2","ix":1,"en":1,"ef":[{"ty":0,"nm":"Blurriness","mn":"ADBE Gaussian Blur 2-0001","ix":1,"v":{"a":0,"k":80,"ix":1}},{"ty":7,"nm":"Blur Dimensions","mn":"ADBE Gaussian Blur 2-0002","ix":2,"v":{"a":0,"k":1,"ix":2}},{"ty":7,"nm":"Repeat Edge Pixels","mn":"ADBE Gaussian Blur 2-0003","ix":3,"v":{"a":0,"k":0,"ix":3}}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-95.269,0],[0,95.269],[95.269,0],[0,-95.269]],"o":[[95.269,0],[0,-95.269],[-95.269,0],[0,95.269]],"v":[[0,172.5],[172.5,0],[0,-172.5],[-172.5,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.827451040231,0.427451010311,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[172.75,172.75],"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":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":151.151151151151,"st":0,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
new file mode 100644
index 000000000..3b0f891b4
--- /dev/null
+++ b/app/src/main/res/values-night/colors.xml
@@ -0,0 +1,9 @@
+
+
+
+ @android:color/system_neutral2_900
+ @color/color_container_overlay_dark
+
+ @android:color/system_neutral1_100
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
new file mode 100644
index 000000000..597da2c51
--- /dev/null
+++ b/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,53 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
new file mode 100644
index 000000000..04d6783b3
--- /dev/null
+++ b/app/src/main/res/values/arrays.xml
@@ -0,0 +1,324 @@
+
+
+
+
+ - android
+ - com.android.systemui
+ - com.android.settings
+ - com.android.launcher
+ - com.coloros.smartsidebar
+
+
+
+
+ - @string/quick_pulldown_side_left
+ - @string/quick_pulldown_side_right
+
+
+ - 0
+ - 1
+
+
+
+ - @string/default_value
+ - @string/accent_color
+ - @string/custom_color
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+ - @string/gesture_override_back_hold_mode_default
+ - @string/gesture_override_back_hold_mode_per_side
+
+
+ - 0
+ - 1
+
+
+
+ - @string/qs_header_image_tint_none
+ - @string/qs_header_image_tint_accent
+ - @string/qs_header_image_tint_primary
+ - @string/qs_header_image_tint_primary_inverse
+ - @string/qs_header_image_tint_custom
+
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+
+
+
+
+ - @string/default_value
+ - @string/qs_header_stock_clock_red_one_disable
+ - @string/accent_color
+ - @string/custom_color
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+
+
+
+
+ - @string/qs_header_clock_custom_color_hour_mode_default
+ - @string/qs_header_clock_custom_color_hour_mode_disabled
+ - @string/qs_header_clock_custom_color_hour_mode_like_time
+ - @string/qs_header_clock_custom_color_hour_mode_first_digit
+ - @string/qs_header_clock_custom_color_hour_mode_one
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+
+
+
+
+ - @string/qs_header_clock_custom_color_time_mode_default
+ - @string/accent_color
+ - @string/custom_color
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+ - @string/accent_color
+ - @string/custom_color
+
+
+ - 0
+ - 1
+
+
+
+
+ - @string/accent_color
+ - @string/custom_color
+
+
+ - 0
+ - 1
+
+
+
+ - @string/gesture_override_back_hold_command_switch_app
+
+ - @string/gesture_override_back_hold_command_kill_app
+ - @string/gesture_override_back_hold_command_screenshot
+ - @string/gesture_override_back_hold_command_quick_settings
+ - @string/gesture_override_back_hold_command_power_menu
+ - @string/gesture_override_back_hold_command_notification_panel
+ - @string/gesture_override_back_hold_command_screen_off
+
+
+ - 0
+
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+ - 7
+
+
+
+
+ - @string/status_bar_clock_position_right
+ - @string/status_bar_clock_position_center
+ - @string/status_bar_clock_position_left
+
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+ - @string/status_bar_am_pm_hidden
+ - @string/status_bar_am_pm_normal
+ - @string/status_bar_am_pm_small
+
+
+
+ - 2
+ - 0
+ - 1
+
+
+
+ - @string/clock_date_left
+ - @string/clock_date_right
+
+
+
+ - 0
+ - 1
+
+
+
+ - @string/status_bar_date_none
+ - @string/status_bar_date_small
+ - @string/status_bar_date_normal
+
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+ - @string/status_bar_date_style_normal
+ - @string/status_bar_date_style_lowercase
+ - @string/status_bar_date_style_uppercase
+
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+ - dd/MM/yy
+ - MM/dd/yy
+ - yyyy-MM-dd
+ - yyyy-dd-MM
+ - dd-MM-yyyy
+ - MM-dd-yyyy
+ - MMM dd
+ - MMM dd, yyyy
+ - MMMM dd, yyyy
+ - EEE
+ - EEE dd
+ - EEE dd/MM
+ - EEE MM/dd
+ - EEE dd MMM
+ - EEE MMM dd
+ - EEE MMMM dd
+ - EEEE dd/MM
+ - EEEE MM/dd
+
+
+
+
+
+ - @string/default_value
+ - @string/lockscreen_stock_clock_red_one_disable
+ - @string/accent_color
+ - @string/custom_color
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+
+
+
+
+ - @string/pulse_render_mode_fading_bars
+ - @string/pulse_render_mode_solid_lines
+
+
+
+ - 0
+ - 1
+
+
+
+ - @string/pulse_color_accent
+ - @string/pulse_color_custom
+ - @string/pulse_color_lava_lamp
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+
+ - @string/default_value
+ - @string/volume_panel_position_right
+ - @string/volume_panel_position_left
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+
+
+ - @string/qs_header_daylight_provider_title
+ - @string/qs_header_static_provider_title
+ - @string/qs_header_file_provider_title
+
+
+
+ - daylight
+ - static
+ - file
+
+
+
+ - @string/provider_openweathermap
+ - @string/provider_metnorway
+
+
+ - 0
+ - 1
+
+
+ - @string/unit_metric
+ - @string/unit_imperial
+
+
+ - 0
+ - 1
+
+
+ - @string/interval_1_hour
+ - @string/interval_2_hour
+ - @string/interval_4_hour
+ - @string/interval_6_hour
+ - @string/interval_12_hour
+
+
+ - 1
+ - 2
+ - 4
+ - 6
+ - 12
+
+
+ - @string/theme_light
+ - @string/theme_dark
+ - @string/theme_system
+
+
+ - 3
+ - 2
+ - 1
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
new file mode 100644
index 000000000..5b60c8a5f
--- /dev/null
+++ b/app/src/main/res/values/attrs.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/battery_configs.xml b/app/src/main/res/values/battery_configs.xml
new file mode 100644
index 000000000..f10d8ab3d
--- /dev/null
+++ b/app/src/main/res/values/battery_configs.xml
@@ -0,0 +1,363 @@
+
+
+
+
+ - @string/battery_landscape_r_custom
+ - @string/battery_landscape_l_custom
+ - @string/battery_portrait_capsule
+ - @string/battery_portrait_lorn
+ - @string/battery_portrait_mx
+ - @string/battery_portrait_airoo
+ - @string/battery_landscape_r_style_a
+ - @string/battery_landscape_l_style_a
+ - @string/battery_landscape_r_style_b
+ - @string/battery_landscape_l_style_b
+ - @string/battery_landscape_ios_15
+ - @string/battery_landscape_ios_16
+ - @string/battery_portrait_origami
+ - @string/battery_landscape_smiley
+ - @string/battery_landscape_miui_pill
+ - @string/battery_landscape_l_coloros
+ - @string/battery_landscape_r_coloros
+ - @string/battery_landscape_battery_a
+ - @string/battery_landscape_battery_b
+ - @string/battery_landscape_battery_c
+ - @string/battery_landscape_battery_d
+ - @string/battery_landscape_battery_e
+ - @string/battery_landscape_battery_f
+ - @string/battery_landscape_battery_g
+ - @string/battery_landscape_battery_h
+ - @string/battery_landscape_battery_i
+ - @string/battery_landscape_battery_j
+ - @string/battery_landscape_battery_k
+ - @string/battery_landscape_battery_l
+ - @string/battery_landscape_battery_m
+ - @string/battery_landscape_battery_n
+ - @string/battery_landscape_battery_o
+ - @string/battery_circle
+ - @string/battery_dotted_circle
+
+
+
+ - 3
+ - 4
+ - 5
+ - 6
+ - 7
+ - 8
+ - 9
+ - 10
+ - 11
+ - 12
+ - 13
+ - 14
+ - 15
+ - 16
+ - 17
+ - 18
+ - 19
+ - 20
+ - 21
+ - 22
+ - 23
+ - 24
+ - 25
+ - 26
+ - 27
+ - 28
+ - 29
+ - 30
+ - 31
+ - 32
+ - 33
+ - 34
+ - 35
+ - 36
+
+
+
+ - Asus
+ - Bold
+ - Buddy
+ - EV Plug
+ - IDC
+ - iOS
+ - Koplak
+ - MIUI
+ - MMK
+ - Moto
+ - Nokia
+ - Plug
+ - Power Cable
+ - Power Cord
+ - Power Station
+ - Realme
+ - Soak
+ - Stres
+ - Strip
+ - USB Cable
+ - Xiaomi
+
+
+
+ - 20
+ - 100
+
+
+ - ?android:attr/colorError
+ - @android:color/white
+
+
+
+
+ #00000000
+
+
+ M2.44,0.64L19.70,0.64A2.21 2.21 0 0 1 21.91,2.85L21.91,9.21A2.21 2.21 0 0 1 19.70,11.42L2.44,11.42A2.21 2.21 0 0 1 0.23,9.21L0.23,2.85A2.21 2.21 0 0 1 2.44,0.64zM0.87,3.59L0.87,8.41A2.28 2.28 0 0 0 3.15,10.69L18.98,10.69A2.28 2.28 0 0 0 21.26,8.41L21.26,3.59A2.28 2.28 0 0 0 18.98,1.31L3.15,1.31A2.28 2.28 0 0 0 0.87,3.59zM22.45,8.32Q25.10,5.95,22.42,3.62
+ @string/config_landscapeBatteryPerimeterCustomR
+ M0.87,1.30L0.87,10.69A0.00 0.00 0 0 0 0.87,10.69L21.26,10.69A0.00 0.00 0 0 0 21.26,10.69L21.26,1.30A0.00 0.00 0 0 0 21.26,1.30L0.87,1.30A0.00 0.00 0 0 0 0.87,1.30z
+ M8.92,10.42L10.91,6.05L7.88,6.12L12.48,1.77L10.93,5.03L13.88,4.96z
+ M14.92,5.01L11.69,5.18L11.97,2.85L10.23,2.97L10.41,5.12L7.65,4.97L7.43,6.69L10.37,6.61L10.26,9.22L12.14,9.08L11.82,6.69L14.91,6.78z
+
+
+ M3.77,0.80L21.85,0.80A1.97 1.97 0 0 1 23.82,2.77L23.82,9.31A1.97 1.97 0 0 1 21.85,11.27L3.77,11.27A1.97 1.97 0 0 1 1.81,9.31L1.81,2.77A1.97 1.97 0 0 1 3.77,0.80zM2.85,3.00L2.85,9.02A1.48 1.48 0 0 0 4.33,10.50L21.30,10.50A1.48 1.48 0 0 0 22.78,9.02L22.78,3.00A1.48 1.48 0 0 0 21.30,1.52L4.33,1.52A1.48 1.48 0 0 0 2.85,3.00zM1.26,7.97Q-1.14,5.86,1.29,3.81z
+ @string/config_landscapeBatteryPerimeterCustomL
+ M2.82,1.39L2.82,10.63A0.00 0.00 0 0 0 2.82,10.63L22.88,10.63A0.00 0.00 0 0 0 22.88,10.63L22.88,1.39A0.00 0.00 0 0 0 22.88,1.39L2.82,1.39A0.00 0.00 0 0 0 2.82,1.39z
+ M10.81,10.30L12.84,6.06L9.76,6.13L14.43,1.90L12.86,5.07L15.85,5.00z
+ M8.90,5.05L12.19,5.21L11.90,2.95L13.67,3.07L13.48,5.16L16.28,5.01L16.51,6.68L13.53,6.60L13.64,9.13L11.73,9.00L12.05,6.68L8.92,6.76z
+
+
+ M3.61,5.65L8.39,5.65A3.59 3.59 0 0 1 11.98,9.24L11.98,10.76A3.59 3.59 0 0 1 8.39,14.35L3.61,14.35A3.59 3.59 0 0 1 0.02,10.76L0.02,9.24A3.59 3.59 0 0 1 3.61,5.65zM1.32,9.13L1.32,10.87A2.17 2.17 0 0 0 3.50,13.04L8.50,13.04A2.17 2.17 0 0 0 10.68,10.87L10.68,9.13A2.17 2.17 0 0 0 8.50,6.96L3.50,6.96A2.17 2.17 0 0 0 1.32,9.13z
+ @string/config_portraitBatteryPerimeterCapsule
+ M2.25,8.00L9.75,8.00A0.00 0.00 0 0 1 9.75,8.00L9.75,12.00A0.00 0.00 0 0 1 9.75,12.00L2.25,12.00A0.00 0.00 0 0 1 2.25,12.00L2.25,8.00A0.00 0.00 0 0 1 2.25,8.00z
+ M5.61,10.76L5.60,12.15C5.58,12.42,5.95,12.49,6.14,12.15L7.25,10.09C7.44,9.66,7.07,9.24,6.39,9.24L6.40,7.85C6.42,7.58,6.05,7.51,5.86,7.85L4.75,9.91C4.56,10.34,4.93,10.76,5.61,10.76
+ @string/config_portraitBatteryPerimeterCapsule
+
+
+ M3.61,5.65L8.39,5.65A3.59 3.59 0 0 1 11.98,9.24L11.98,10.76A3.59 3.59 0 0 1 8.39,14.35L3.61,14.35A3.59 3.59 0 0 1 0.02,10.76L0.02,9.24A3.59 3.59 0 0 1 3.61,5.65zM1.32,9.13L1.32,10.87A2.17 2.17 0 0 0 3.50,13.04L8.50,13.04A2.17 2.17 0 0 0 10.68,10.87L10.68,9.13A2.17 2.17 0 0 0 8.50,6.96L3.50,6.96A2.17 2.17 0 0 0 1.32,9.13z
+ @string/config_portraitBatteryPerimeterLorn
+ M6.00,7.72L6.00,7.72A0.65 0.65 0 0 1 6.65,8.37L6.65,11.63A0.65 0.65 0 0 1 6.00,12.28L6.00,12.28A0.65 0.65 0 0 1 5.35,11.63L5.35,8.37A0.65 0.65 0 0 1 6.00,7.72z
+ M5.61,10.76L5.60,12.15C5.58,12.42,5.95,12.49,6.14,12.15L7.25,10.09C7.44,9.66,7.07,9.24,6.39,9.24L6.40,7.85C6.42,7.58,6.05,7.51,5.86,7.85L4.75,9.91C4.56,10.34,4.93,10.76,5.61,10.76
+ M1.71,6.00L8.79,6.00A1.71 1.71 0 0 1 10.50,7.71L10.50,12.29A1.71 1.71 0 0 1 8.79,14.00L1.71,14.00A1.71 1.71 0 0 1 0.00,12.29L0.00,7.71A1.71 1.71 0 0 1 1.71,6.00zM11.00,9.25L11.00,10.75A0.50 0.50 0 0 0 11.50,11.25L11.50,11.25A0.50 0.50 0 0 0 12.00,10.75L12.00,9.25A0.50 0.50 0 0 0 11.50,8.75L11.50,8.75A0.50 0.50 0 0 0 11.00,9.25zM1.00,8.00L1.00,12.00A1.00 1.00 0 0 0 2.00,13.00L8.50,13.00A1.00 1.00 0 0 0 9.50,12.00L9.50,8.00A1.00 1.00 0 0 0 8.50,7.00L2.00,7.00A1.00 1.00 0 0 0 1.00,8.00z
+
+
+ M4.39,0.15C4.1,0.28,4.02,0.35,3.89,0.59C3.68,0.98,3.78,1.55,4.11,1.83C4.4,2.09,4.55,2.1,6.44,2.1C8.33,2.1,8.47,2.09,8.76,1.83C9.1,1.55,9.2,0.98,8.98,0.59C8.85,0.35,8.78,0.28,8.49,0.15C8.3,0.06,8.15,0.05,6.44,0.05C4.72,0.05,4.58,0.06,4.39,0.15ZM4.39,0.15M3.18,2.6C2.68,2.74,2.34,2.95,1.92,3.35C1.35,3.89,1.04,4.54,1.04,5.16L1.04,5.4L3.59,5.4L3.86,5.13C4.39,4.61,4.64,4.55,6.46,4.55C8.29,4.55,8.54,4.61,9.07,5.13L9.34,5.4L11.94,5.4L11.94,5.17C11.94,4.55,11.62,3.89,11.06,3.35C10.63,2.93,10.3,2.74,9.77,2.59C9.45,2.5,9.23,2.5,6.46,2.5C3.76,2.5,3.48,2.52,3.18,2.6ZM3.18,2.6M0.93,11L0.93,15.65L3.27,15.65L3.27,6.35L0.93,6.35ZM0.93,11M9.66,11L9.66,15.65L11.99,15.65L11.99,6.35L9.66,6.35ZM9.66,11M1.04,16.86C1.04,17.45,1.37,18.11,1.92,18.65C2.35,19.06,2.76,19.3,3.25,19.43C3.7,19.54,9.28,19.54,9.73,19.43C10.23,19.3,10.63,19.06,11.06,18.65C11.61,18.11,11.94,17.45,11.94,16.86L11.94,16.65L9.35,16.65L9.07,16.92C8.52,17.45,8.29,17.5,6.46,17.5C4.64,17.5,4.4,17.45,3.86,16.92L3.58,16.65L1.04,16.65ZM1.04,16.86
+ @string/config_portraitBatteryPerimeterMx
+ M5.32,6.04C5.09,6.15,4.98,6.25,4.88,6.46C4.78,6.64,4.78,6.82,4.78,11.08C4.78,15.32,4.78,15.52,4.88,15.69C5.11,16.14,5.32,16.2,6.46,16.2C7.61,16.2,7.82,16.14,8.05,15.69C8.14,15.52,8.15,15.32,8.15,11.08C8.15,6.82,8.15,6.64,8.05,6.46C7.94,6.25,7.84,6.14,7.59,6.03C7.36,5.91,5.55,5.91,5.32,6.04ZM5.32,6.04
+ M5,17.5 V12 H3 L7,4.5 V10 h2 L5,17.5 z
+ @string/config_portraitBatteryPerimeterMx
+
+
+ M2.85,4.00L9.15,4.00A2.85 2.85 0 0 1 12.00,6.85L12.00,13.15A2.85 2.85 0 0 1 9.15,16.00L2.85,16.00A2.85 2.85 0 0 1 -0.00,13.15L-0.00,6.85A2.85 2.85 0 0 1 2.85,4.00zM8.00,4.00L4.00,4.00C4.00,3.50,4.00,3.00,4.50,3.00L7.50,3.00C8.00,3.00,8.00,3.50,8.00,4.00zM2.49,12.25L2.49,12.91A0.66 0.66 0 0 0 3.15,13.57L6.24,13.57A0.66 0.66 0 0 0 6.90,12.91L6.90,12.25A0.66 0.66 0 0 0 6.24,11.59L3.15,11.59A0.66 0.66 0 0 0 2.49,12.25zM2.48,9.71L2.48,10.37A0.66 0.66 0 0 0 3.14,11.03L6.24,11.03A0.66 0.66 0 0 0 6.90,10.37L6.90,9.71A0.66 0.66 0 0 0 6.24,9.05L3.14,9.05A0.66 0.66 0 0 0 2.48,9.71zM1.80,6.85L1.80,13.15A1.05 1.05 0 0 0 2.85,14.20L9.15,14.20A1.05 1.05 0 0 0 10.20,13.15L10.20,6.85A1.05 1.05 0 0 0 9.15,5.80L2.85,5.80A1.05 1.05 0 0 0 1.80,6.85zM2.49,7.18L2.49,7.84A0.66 0.66 0 0 0 3.15,8.50L6.24,8.50A0.66 0.66 0 0 0 6.90,7.84L6.90,7.18A0.66 0.66 0 0 0 6.24,6.52L3.15,6.52A0.66 0.66 0 0 0 2.49,7.18z
+ @string/config_portraitBatteryPerimeterAiroo
+ M8.28,6.53L8.89,6.53A0.61 0.61 0 0 1 9.50,7.14L9.50,12.96A0.61 0.61 0 0 1 8.89,13.57L8.28,13.57A0.61 0.61 0 0 1 7.67,12.96L7.67,7.14A0.61 0.61 0 0 1 8.28,6.53z
+ M4.26,10.66L4.25,11.86C4.23,12.10,4.62,12.16,4.82,11.86L5.97,10.08C6.17,9.71,5.79,9.35,5.08,9.34L5.08,8.14C5.10,7.90,4.72,7.84,4.52,8.14L3.36,9.92C3.16,10.29,3.55,10.65,4.26,10.66
+ @string/config_portraitBatteryPerimeterAiroo
+
+
+ M20.74,6L20.74,9.01L20.83,9C21.17,8.98,21.45,8.88,21.74,8.69C21.89,8.59,21.98,8.52,22.11,8.38C22.43,8.06,22.65,7.68,22.81,7.19C23.22,5.94,22.93,4.48,22.13,3.64C21.75,3.25,21.32,3.04,20.84,3L20.74,3L20.74,6Z,M2.74,0.01C2.41,0.04,2.08,0.12,1.79,0.25C1.34,0.44,0.92,0.76,0.61,1.16C0.26,1.62,0.03,2.19,-0.01,2.78C-0.02,2.95,-0.02,9.07,-0.01,9.23C0.02,9.62,0.12,9.98,0.29,10.33C0.59,10.92,1.03,11.38,1.61,11.67C1.87,11.81,2.13,11.9,2.42,11.95C2.7,12.01,2.21,12,9.99,12C15.93,12,17.22,12,17.31,11.9C18.35,11.87,19.23,11.25,19.68,10.33C19.84,10,19.93,9.68,19.98,9.33C19.99,9.16,19.99,2.85,19.98,2.68C19.93,2.32,19.84,2,19.67,1.66C19.44,1.18,19.09,0.79,18.64,0.49C18.21,0.21,17.75,0.06,17.22,0.01C17.08,-0,2.87,-0,2.74,0.01ZM17.03,1.26C17.67,1.33,18.21,1.7,18.51,2.26C18.58,2.39,18.64,2.54,18.67,2.68C18.74,2.93,18.73,2.74,18.73,6C18.73,7.97,18.73,9,18.72,9.06C18.64,9.76,18.19,10.36,17.54,10.62C17.42,10.67,17.3,10.7,17.15,10.73L17.03,10.75L9.98,10.75L2.93,10.75L2.8,10.73C1.95,10.58,1.32,9.9,1.23,9.05C1.22,8.97,1.22,8.02,1.22,5.93L1.22,2.93L1.25,2.82C1.35,2.28,1.64,1.85,2.09,1.56C2.32,1.4,2.63,1.29,2.91,1.26C3.03,1.25,16.91,1.25,17.03,1.26Z
+ @string/config_landscapeBatteryPerimeterRStyleA
+ M3.32,1.76C3.15,1.77,3.01,1.8,2.86,1.85C2.26,2.07,1.84,2.59,1.75,3.22C1.73,3.35,1.73,8.67,1.75,8.8C1.86,9.49,2.35,10.04,3.03,10.21C3.22,10.25,2.84,10.25,9.99,10.25C15.54,10.25,16.7,10.25,16.78,10.24C17.29,10.16,17.73,9.87,18,9.43C18.1,9.26,18.19,9.02,18.22,8.82C18.24,8.72,18.24,8.52,18.24,6.01C18.24,3.8,18.24,3.29,18.22,3.22C18.13,2.59,17.71,2.07,17.11,1.85C17.01,1.82,16.93,1.8,16.81,1.77C16.73,1.76,16.2,1.75,10.04,1.75C6.36,1.75,3.34,1.75,3.32,1.76Z
+ M7.43,6.77L9.68,6.77L8.51,9.81C8.34,10.26,8.8,10.49,9.1,10.13L12.75,5.78C12.82,5.7,12.86,5.61,12.86,5.52C12.86,5.35,12.73,5.23,12.54,5.23L10.29,5.23L11.46,2.19C11.63,1.75,11.17,1.52,10.88,1.87L7.23,6.21C7.15,6.3,7.11,6.39,7.11,6.48C7.11,6.65,7.25,6.77,7.43,6.77Z
+ @string/config_landscapeBatteryPerimeterRStyleA
+
+
+ M2.25,6L2.25,9.01L2.16,9C1.82,8.97,1.54,8.88,1.25,8.69C1.1,8.59,1.01,8.52,0.88,8.38C0.56,8.06,0.34,7.68,0.18,7.18C-0.22,5.94,0.06,4.47,0.86,3.64C1.24,3.25,1.67,3.04,2.15,3L2.25,3L2.25,6Z,M20.26,0.01C20.58,0.04,20.91,0.12,21.2,0.25C21.65,0.44,22.07,0.76,22.38,1.16C22.74,1.62,22.96,2.19,23,2.78C23.02,2.95,23.02,9.07,23,9.23C22.97,9.62,22.87,9.98,22.7,10.33C22.41,10.92,21.96,11.37,21.38,11.67C21.12,11.81,20.86,11.9,20.58,11.95C20.29,12,20.78,12,13,12C7.06,12,5.77,12,5.68,11.99C4.64,11.87,3.76,11.25,3.31,10.33C3.15,10,3.06,9.68,3.02,9.32C3,9.15,3,2.85,3.02,2.68C3.06,2.32,3.15,2,3.32,1.66C3.56,1.18,3.9,0.79,4.35,0.49C4.78,0.21,5.24,0.06,5.77,0.01C5.91,-0,20.12,-0,20.26,0.01ZM5.96,1.26C5.33,1.33,4.78,1.7,4.48,2.26C4.41,2.39,4.35,2.54,4.32,2.68C4.26,2.93,4.26,2.74,4.26,6C4.26,7.97,4.26,9,4.27,9.06C4.35,9.76,4.8,10.36,5.45,10.62C5.57,10.67,5.7,10.7,5.84,10.73L5.96,10.75L13.01,10.75L20.06,10.75L20.19,10.73C21.04,10.57,21.68,9.89,21.76,9.04C21.77,8.97,21.77,8.02,21.77,5.93L21.77,2.92L21.74,2.81C21.64,2.28,21.35,1.85,20.91,1.56C20.67,1.4,20.37,1.29,20.08,1.26C19.96,1.25,6.08,1.25,5.96,1.26Z
+ @string/config_landscapeBatteryPerimeterLStyleA
+ M19.67,1.75C19.84,1.77,19.98,1.8,20.13,1.85C20.73,2.07,21.15,2.58,21.24,3.21C21.26,3.35,21.26,8.67,21.24,8.79C21.13,9.49,20.64,10.04,19.96,10.2C19.77,10.25,20.15,10.25,13,10.25C7.45,10.25,6.29,10.25,6.21,10.24C5.7,10.16,5.26,9.87,4.99,9.42C4.89,9.26,4.8,9.02,4.77,8.82C4.75,8.72,4.75,8.52,4.75,6.01C4.75,3.8,4.76,3.29,4.77,3.21C4.86,2.58,5.28,2.07,5.88,1.85C5.98,1.81,6.06,1.79,6.18,1.77C6.26,1.76,6.79,1.75,12.95,1.75C16.63,1.75,19.65,1.75,19.67,1.75Z
+ M10.45,6.77L12.7,6.77L11.53,9.81C11.36,10.26,11.82,10.49,12.12,10.13L15.77,5.78C15.84,5.7,15.88,5.61,15.88,5.52C15.88,5.35,15.75,5.23,15.56,5.23L13.31,5.23L14.48,2.19C14.65,1.75,14.19,1.51,13.9,1.87L10.25,6.2C10.17,6.3,10.13,6.39,10.13,6.48C10.13,6.65,10.27,6.77,10.45,6.77Z
+ @string/config_landscapeBatteryPerimeterLStyleA
+
+
+ M6.10,0.80L15.78,0.80A5.18 5.18 0 0 1 20.96,5.98L20.96,5.98A5.18 5.18 0 0 1 15.78,11.16L6.10,11.16A5.18 5.18 0 0 1 0.92,5.98L0.92,5.98A5.18 5.18 0 0 1 6.10,0.80zM2.42,5.98L2.42,5.98A3.67 3.67 0 0 0 6.09,9.65L15.78,9.65A3.67 3.67 0 0 0 19.45,5.98L19.45,5.98A3.67 3.67 0 0 0 15.78,2.31L6.09,2.31A3.67 3.67 0 0 0 2.42,5.98zM21.70,5.05L21.70,7.02A0.92 0.92 0 0 0 22.62,7.94L22.62,7.94A0.92 0.92 0 0 0 23.54,7.02L23.54,5.05A0.92 0.92 0 0 0 22.62,4.13L22.62,4.13A0.92 0.92 0 0 0 21.70,5.05z
+ @string/config_landscapeBatteryPerimeterRStyleB
+ M4.10,4.45L4.10,7.51A0.00 0.00 0 0 0 4.10,7.51L17.78,7.51A0.00 0.00 0 0 0 17.78,7.51L17.78,4.45A0.00 0.00 0 0 0 17.78,4.45L4.10,4.45A0.00 0.00 0 0 0 4.10,4.45z
+ M10.81,10.30L12.84,6.06L9.76,6.13L14.43,1.90L12.86,5.07L15.85,5.00z
+ @string/config_landscapeBatteryPerimeterRStyleB
+
+
+ M8.22,0.80L17.90,0.80A5.18 5.18 0 0 1 23.08,5.98L23.08,5.98A5.18 5.18 0 0 1 17.90,11.16L8.22,11.16A5.18 5.18 0 0 1 3.04,5.98L3.04,5.98A5.18 5.18 0 0 1 8.22,0.80zM0.46,5.05L0.46,7.02A0.92 0.92 0 0 0 1.38,7.94L1.38,7.94A0.92 0.92 0 0 0 2.30,7.02L2.30,5.05A0.92 0.92 0 0 0 1.38,4.13L1.38,4.13A0.92 0.92 0 0 0 0.46,5.05zM4.55,5.98L4.55,5.98A3.67 3.67 0 0 0 8.22,9.65L17.91,9.65A3.67 3.67 0 0 0 21.58,5.98L21.58,5.98A3.67 3.67 0 0 0 17.91,2.31L8.22,2.31A3.67 3.67 0 0 0 4.55,5.98z
+ @string/config_landscapeBatteryPerimeterLStyleB
+ M4.10,4.45L4.10,7.51A0.00 0.00 0 0 0 4.10,7.51L17.78,7.51A0.00 0.00 0 0 0 17.78,7.51L17.78,4.45A0.00 0.00 0 0 0 17.78,4.45L4.10,4.45A0.00 0.00 0 0 0 4.10,4.45z
+ M10.81,10.30L12.84,6.06L9.76,6.13L14.43,1.90L12.86,5.07L15.85,5.00z
+ @string/config_landscapeBatteryPerimeterLStyleB
+
+
+ M3.79,0.78L18.21,0.78A2.82 2.82 0 0 1 21.03,3.60L21.03,8.40A2.82 2.82 0 0 1 18.21,11.22L3.79,11.22A2.82 2.82 0 0 1 0.97,8.40L0.97,3.60A2.82 2.82 0 0 1 3.79,0.78zM21.82,7.59C23.43,7.11,23.43,4.89,21.82,4.41L21.82,7.59zM2.00,3.75L2.00,8.25A2.00 2.00 0 0 0 4.00,10.25L18.00,10.25A2.00 2.00 0 0 0 20.00,8.25L20.00,3.75A2.00 2.00 0 0 0 18.00,1.75L4.00,1.75A2.00 2.00 0 0 0 2.00,3.75z
+ @string/config_landscapeBatteryPerimeteriOS15
+ M4.32,2.63L17.68,2.63A1.45 1.45 0 0 1 19.13,4.07L19.12,7.93A1.45 1.45 0 0 1 17.68,9.37L4.32,9.38A1.45 1.45 0 0 1 2.87,7.93L2.87,4.07A1.45 1.45 0 0 1 4.32,2.63z
+ M10.39,6.94L7.95,6.94Q7.30,6.86,7.70,6.29L11.98,1.28C12.34,0.91,13.07,1.16,12.71,2.02L11.53,5.06L13.97,5.06Q14.62,5.14,14.21,5.71L9.94,10.72C9.58,11.09,8.84,10.84,9.21,9.98L10.39,6.94z
+ @string/config_landscapeBatteryPerimeteriOS15
+
+
+ M3.13,0.36L18.71,0.36A3.04 3.04 0 0 1 21.76,3.40L21.76,8.60A3.04 3.04 0 0 1 18.71,11.64L3.13,11.64A3.04 3.04 0 0 1 0.08,8.60L0.08,3.40A3.04 3.04 0 0 1 3.13,0.36zM22.61,7.72C24.35,7.19,24.35,4.81,22.61,4.28L22.61,7.72z
+ @string/config_landscapeBatteryPerimeteriOS16
+ @string/config_landscapeBatteryPerimeteriOS16
+ M17.96,5.25L19.91,5.25Q20.43,5.31,20.10,5.77L16.69,9.77C16.39,10.06,15.81,9.87,16.10,9.18L17.04,6.75L15.09,6.75Q14.57,6.69,14.90,6.23L18.31,2.23C18.61,1.94,19.19,2.13,18.90,2.82L17.96,5.25z
+ @string/config_landscapeBatteryPerimeteriOS16
+
+
+ M15.50,0.50C13.50,0.33,11.00,0.33,8.50,0.50C8.00,-0.21,6.00,-0.21,5.63,1.00C5.17,2.50,4.33,2.33,4.00,4.33C3.75,5.50,3.75,7.50,4.00,8.43C4.25,9.50,5.50,12.00,8.95,12.00L15.00,12.00C18.45,12.00,19.70,9.50,19.95,8.43C20.20,7.50,20.20,5.50,19.95,4.33C19.62,2.33,18.79,2.50,18.33,1.00C18.00,-0.21,16.00,-0.21,15.50,0.50zM15.25,10.50C12.50,10.57,11.50,10.57,8.75,10.50C7.50,10.40,6.00,9.75,5.50,7.75Q5.12,6.00,5.50,4.50C6.00,3.00,7.50,2.10,8.75,2.00C11.00,1.88,13.00,1.88,15.25,2.00C16.50,2.10,18.00,3.00,18.50,4.50Q18.88,6.00,18.50,7.75C18.00,9.75,16.50,10.40,15.25,10.50z
+ @string/config_portraitBatteryPerimeterOrigami
+ M9.10,1.55L14.90,1.55A4.10 4.10 0 0 1 19.00,5.64L19.00,6.86A4.10 4.10 0 0 1 14.90,10.95L9.10,10.95A4.10 4.10 0 0 1 5.00,6.86L5.00,5.64A4.10 4.10 0 0 1 9.10,1.55z
+ M13.07,5.82C12.95,7.25,11.05,7.25,10.93,5.82C10.97,5.35,11.60,5.35,11.65,5.82C11.61,6.30,12.39,6.30,12.35,5.82C12.40,5.35,13.03,5.35,13.07,5.82zM15.57,5.11C15.96,5.11,16.28,5.43,16.28,5.82C16.28,6.22,15.96,6.54,15.57,6.54C15.17,6.54,14.85,6.22,14.85,5.82C14.85,5.43,15.17,5.11,15.57,5.11zM8.43,5.11C8.83,5.11,9.15,5.43,9.15,5.82C9.15,6.22,8.83,6.54,8.43,6.54C8.04,6.54,7.72,6.22,7.72,5.82C7.72,5.43,8.04,5.11,8.43,5.11z
+ @string/config_portraitBatteryPerimeterOrigami
+
+
+ M3.76,0.62L18.03,0.62A2.74 2.74 0 0 1 20.78,3.36L20.78,8.64A2.74 2.74 0 0 1 18.03,11.38L3.76,11.38A2.74 2.74 0 0 1 1.02,8.64L1.02,3.36A2.74 2.74 0 0 1 3.76,0.62zM21.66,7.79C23.42,7.68,23.42,4.32,21.66,4.21L21.66,7.79zM1.93,3.37L1.93,8.66A1.85 1.85 0 0 0 3.78,10.51L18.04,10.51A1.85 1.85 0 0 0 19.89,8.66L19.89,3.37A1.85 1.85 0 0 0 18.04,1.52L3.78,1.52A1.85 1.85 0 0 0 1.93,3.37z
+ @string/config_landscapeBatteryPerimeterSmiley
+ M2.83,3.78L2.83,8.21A1.38 1.38 0 0 0 4.21,9.59L17.59,9.59A1.38 1.38 0 0 0 18.97,8.21L18.97,3.78A1.38 1.38 0 0 0 17.59,2.40L4.21,2.40A1.38 1.38 0 0 0 2.83,3.78z
+
+ M12.21,6.01C12.05,7.95,9.45,7.95,9.29,6.01C9.34,5.36,10.21,5.36,10.27,6.01C10.22,6.66,11.28,6.66,11.23,6.01C11.29,5.36,12.16,5.36,12.21,6.01zM15.62,5.03C16.16,5.03,16.59,5.47,16.59,6.01C16.59,6.54,16.16,6.98,15.62,6.98C15.08,6.98,14.65,6.54,14.65,6.01C14.65,5.47,15.08,5.03,15.62,5.03zM5.88,5.03C6.42,5.03,6.86,5.47,6.86,6.01C6.86,6.54,6.42,6.98,5.88,6.98C5.34,6.98,4.91,6.54,4.91,6.01C4.91,5.47,5.34,5.03,5.88,5.03z
+ M9.44,6.57L9.44,6.57A0.45 0.45 0 0 0 9.89,7.02L11.81,7.02A0.45 0.45 0 0 0 12.26,6.57L12.26,6.57A0.45 0.45 0 0 0 11.81,6.12L9.89,6.12A0.45 0.45 0 0 0 9.44,6.57zM15.33,5.11C15.83,5.11,16.23,5.51,16.23,6.01C16.23,6.50,15.83,6.90,15.33,6.90C14.84,6.90,14.44,6.50,14.44,6.01C14.44,5.51,14.84,5.11,15.33,5.11zM6.36,5.11C6.86,5.11,7.26,5.51,7.26,6.01C7.26,6.50,6.86,6.90,6.36,6.90C5.87,6.90,5.47,6.50,5.47,6.01C5.47,5.51,5.87,5.11,6.36,5.11z
+ M9.50,6.90C9.65,5.11,12.05,5.11,12.19,6.90C12.15,7.50,11.35,7.50,11.29,6.90C11.33,6.30,10.36,6.30,10.40,6.90C10.35,7.50,9.55,7.50,9.50,6.90zM15.33,5.11C15.83,5.11,16.23,5.51,16.23,6.01C16.23,6.50,15.83,6.90,15.33,6.90C14.84,6.90,14.44,6.50,14.44,6.01C14.44,5.51,14.84,5.11,15.33,5.11zM6.36,5.11C6.86,5.11,7.26,5.51,7.26,6.01C7.26,6.50,6.86,6.90,6.36,6.90C5.87,6.90,5.47,6.50,5.47,6.01C5.47,5.51,5.87,5.11,6.36,5.11z
+ @string/config_landscapeBatteryPerimeterSmiley
+
+
+ M5.75,0.75L18.25,0.75A5.25 5.25 0 0 1 23.50,6.00L23.50,6.00A5.25 5.25 0 0 1 18.25,11.25L5.75,11.25A5.25 5.25 0 0 1 0.50,6.00L0.50,6.00A5.25 5.25 0 0 1 5.75,0.75zM1.75,6.00L1.75,6.00A4.00 4.00 0 0 0 5.75,10.00L18.25,10.00A4.00 4.00 0 0 0 22.25,6.00L22.25,6.00A4.00 4.00 0 0 0 18.25,2.00L5.75,2.00A4.00 4.00 0 0 0 1.75,6.00z
+ @string/config_landscapeBatteryPerimeterMiuiPill
+ M3.14,6.00L3.14,6.00A3.03 3.03 0 0 0 6.17,9.03L17.83,9.03A3.03 3.03 0 0 0 20.86,6.00L20.86,6.00A3.03 3.03 0 0 0 17.83,2.97L6.17,2.97A3.03 3.03 0 0 0 3.14,6.00z
+ M9.11,6.11L13.68,1.21C13.91,0.93,14.25,1.15,14.06,1.58L12.77,4.50C12.39,5.40,12.86,5.41,13.49,5.39L14.65,5.36C15.15,5.36,15.15,5.63,14.89,5.89L10.32,10.79C10.09,11.07,9.75,10.85,9.94,10.42L11.23,7.50C11.61,6.60,11.14,6.59,10.51,6.61L9.35,6.64C8.85,6.64,8.85,6.37,9.11,6.11z
+ @string/config_landscapeBatteryPerimeterMiuiPill
+
+
+ M22.91,6.00L22.91,8.39C22.91,9.80,21.55,11.97,18.83,11.97L6.04,11.97C3.36,11.97,2.18,10.48,2.00,8.72C2.00,7.63,1.09,7.81,1.10,6.80L1.10,5.30C1.09,4.19,2.00,4.37,2.00,3.28C2.00,2.20,3.36,0.03,6.04,0.03L18.83,0.03C21.55,0.03,22.91,2.20,22.91,3.61L22.91,6.00zM3.25,4.38L3.25,7.62A3.13 3.13 0 0 0 6.38,10.75L18.50,10.75A3.13 3.13 0 0 0 21.63,7.62L21.63,4.38A3.13 3.13 0 0 0 18.50,1.25L6.38,1.25A3.13 3.13 0 0 0 3.25,4.38z
+ @string/config_landscapeBatteryPerimeterLColorOS
+ M6.67,2.00L18.21,2.00A2.67 2.67 0 0 1 20.87,4.67L20.87,7.33A2.67 2.67 0 0 1 18.21,10.00L6.67,10.00A2.67 2.67 0 0 1 4.00,7.33L4.00,4.67A2.67 2.67 0 0 1 6.67,2.00z
+ M10.43,6.08L13.70,2.57C13.86,2.37,14.11,2.53,13.97,2.83L13.05,4.93C12.78,5.57,13.12,5.58,13.57,5.56L14.39,5.54C14.76,5.54,14.76,5.74,14.57,5.92L11.30,9.43C11.14,9.63,10.89,9.47,11.03,9.17L11.95,7.07C12.22,6.43,11.88,6.42,11.43,6.44L10.61,6.46C10.24,6.46,10.24,6.26,10.43,6.08z
+ @string/config_landscapeBatteryPerimeterLColorOS
+
+
+ M1.09,6.00L1.09,8.39C1.09,9.80,2.45,11.97,5.17,11.97L17.96,11.97C20.64,11.97,21.82,10.48,22.00,8.72C22.00,7.63,22.91,7.81,22.90,6.80L22.90,5.30C22.91,4.19,22.00,4.37,22.00,3.28C22.00,2.20,20.64,0.03,17.96,0.03L5.17,0.03C2.45,0.03,1.09,2.20,1.09,3.61L1.09,6.00zM5.50,1.25L17.63,1.25A3.13 3.13 0 0 1 20.75,4.38L20.75,7.62A3.13 3.13 0 0 1 17.63,10.75L5.50,10.75A3.13 3.13 0 0 1 2.38,7.62L2.38,4.38A3.13 3.13 0 0 1 5.50,1.25z
+ @string/config_landscapeBatteryPerimeterRColorOS
+ M5.79,2.00L17.33,2.00A2.67 2.67 0 0 1 20.00,4.67L20.00,7.33A2.67 2.67 0 0 1 17.33,10.00L5.79,10.00A2.67 2.67 0 0 1 3.13,7.33L3.13,4.67A2.67 2.67 0 0 1 5.79,2.00z
+ M9.43,6.08L12.70,2.57C12.86,2.37,13.11,2.53,12.97,2.83L12.05,4.93C11.78,5.57,12.12,5.58,12.57,5.56L13.39,5.54C13.76,5.54,13.76,5.74,13.57,5.92L10.30,9.43C10.14,9.63,9.89,9.47,10.03,9.17L10.95,7.07C11.22,6.43,10.88,6.42,10.43,6.44L9.61,6.46C9.24,6.46,9.24,6.26,9.43,6.08z
+ @string/config_landscapeBatteryPerimeterRColorOS
+
+
+ M3.387,0.676C3.375,0.676 3.313,0.684 3.246,0.691C2.676,0.746 2.094,0.992 1.641,1.371C1.063,1.855 0.699,2.508 0.578,3.27L0.555,3.414L0.555,6.586L0.578,6.73C0.664,7.285 0.875,7.766 1.219,8.199C1.313,8.32 1.555,8.563 1.68,8.66C2.172,9.051 2.75,9.277 3.367,9.32C3.477,9.328 4.922,9.328 8.074,9.328C12.32,9.324 12.633,9.324 12.742,9.309C12.984,9.273 13.207,9.215 13.43,9.133C13.563,9.086 13.844,8.945 13.969,8.863C14.512,8.52 14.938,8.012 15.168,7.43L15.191,7.371L15.234,7.371C15.336,7.371 15.586,7.324 15.746,7.277C16.539,7.047 17.156,6.414 17.367,5.617C17.422,5.43 17.441,5.281 17.445,5.078C17.461,4.656 17.379,4.289 17.188,3.918C16.871,3.293 16.281,2.84 15.594,2.684C15.5,2.664 15.266,2.633 15.203,2.629C15.195,2.629 15.184,2.605 15.168,2.57C15.039,2.25 14.84,1.93 14.59,1.656C14.176,1.195 13.578,0.855 12.973,0.734C12.66,0.672 13.082,0.676 8.016,0.676C5.48,0.672 3.395,0.676 3.387,0.676ZM12.441,1.875C12.684,1.914 12.863,1.973 13.055,2.066C13.68,2.367 14.109,2.977 14.191,3.676C14.195,3.73 14.199,4.223 14.199,5.004C14.199,6.059 14.199,6.258 14.184,6.355C14.094,7.059 13.66,7.652 13.023,7.949C12.84,8.039 12.664,8.09 12.43,8.129C12.32,8.145 12.117,8.145 7.969,8.145C3.848,8.145 3.617,8.145 3.508,8.129C3.199,8.082 2.941,7.984 2.688,7.828C2.25,7.559 1.922,7.109 1.797,6.602C1.734,6.355 1.734,6.398 1.734,4.996C1.734,3.59 1.734,3.648 1.797,3.398C2.012,2.535 2.766,1.914 3.66,1.859C3.73,1.855 5.711,1.852 8.059,1.855C12.125,1.855 12.34,1.855 12.441,1.875ZM15.582,3.828C16.219,4.066 16.547,4.742 16.34,5.391C16.203,5.809 15.859,6.121 15.418,6.223L15.391,6.23L15.391,3.773L15.457,3.789C15.496,3.801 15.551,3.816 15.582,3.828ZM15.582,3.828
+ M3.387,0.676C3.375,0.676 3.313,0.684 3.246,0.691C2.676,0.746 2.094,0.992 1.641,1.371C1.063,1.855 0.699,2.508 0.578,3.27L0.555,3.414L0.555,6.586L0.578,6.73C0.664,7.285 0.875,7.766 1.219,8.199C1.313,8.32 1.555,8.563 1.68,8.66C2.172,9.051 2.75,9.277 3.367,9.32C3.477,9.328 4.922,9.328 8.074,9.328C12.32,9.324 12.633,9.324 12.742,9.309C12.984,9.273 13.207,9.215 13.43,9.133C13.563,9.086 13.844,8.945 13.969,8.863C14.512,8.52 14.938,8.012 15.168,7.43L15.191,7.371L15.234,7.371C15.336,7.371 15.586,7.324 15.746,7.277C16.539,7.047 17.156,6.414 17.367,5.617C17.422,5.43 17.441,5.281 17.445,5.078C17.461,4.656 17.379,4.289 17.188,3.918C16.871,3.293 16.281,2.84 15.594,2.684C15.5,2.664 15.266,2.633 15.203,2.629C15.195,2.629 15.184,2.605 15.168,2.57C15.039,2.25 14.84,1.93 14.59,1.656C14.176,1.195 13.578,0.855 12.973,0.734C12.66,0.672 13.082,0.676 8.016,0.676C5.48,0.672 3.395,0.676 3.387,0.676ZM12.441,1.875C12.684,1.914 12.863,1.973 13.055,2.066C13.68,2.367 14.109,2.977 14.191,3.676C14.195,3.73 14.199,4.223 14.199,5.004C14.199,6.059 14.199,6.258 14.184,6.355C14.094,7.059 13.66,7.652 13.023,7.949C12.84,8.039 12.664,8.09 12.43,8.129C12.32,8.145 12.117,8.145 7.969,8.145C3.848,8.145 3.617,8.145 3.508,8.129C3.199,8.082 2.941,7.984 2.688,7.828C2.25,7.559 1.922,7.109 1.797,6.602C1.734,6.355 1.734,6.398 1.734,4.996C1.734,3.59 1.734,3.648 1.797,3.398C2.012,2.535 2.766,1.914 3.66,1.859C3.73,1.855 5.711,1.852 8.059,1.855C12.125,1.855 12.34,1.855 12.441,1.875ZM15.582,3.828C16.219,4.066 16.547,4.742 16.34,5.391C16.203,5.809 15.859,6.121 15.418,6.223L15.391,6.23L15.391,3.773L15.457,3.789C15.496,3.801 15.551,3.816 15.582,3.828ZM15.582,3.828
+ M3.871,2.742C3.734,2.75 3.629,2.773 3.512,2.816C3.328,2.883 3.172,2.98 3.031,3.113C2.801,3.34 2.66,3.617 2.621,3.934C2.602,4.078 2.605,5.953 2.625,6.09C2.68,6.496 2.914,6.855 3.266,7.07C3.43,7.172 3.629,7.238 3.836,7.262C3.906,7.27 5.078,7.27 8.035,7.27L12.137,7.266L12.227,7.242C12.57,7.164 12.84,6.996 13.035,6.746C13.211,6.52 13.297,6.289 13.32,5.984C13.332,5.828 13.332,4.184 13.32,4.02C13.309,3.871 13.289,3.766 13.25,3.656C13.086,3.184 12.691,2.848 12.188,2.754C12.102,2.734 11.844,2.734 8.035,2.734C5.801,2.734 3.93,2.734 3.871,2.742ZM3.871,2.742
+ M9.23,2.371C9.176,2.383 9.129,2.41 9.09,2.461C9.07,2.48 8.836,2.867 8.566,3.313C8.297,3.762 8.07,4.129 8.07,4.129C8.066,4.129 8.012,3.996 7.945,3.836C7.879,3.676 7.813,3.52 7.797,3.488C7.734,3.363 7.59,3.316 7.461,3.371C7.402,3.395 7.348,3.453 7.324,3.508C7.297,3.57 7.305,3.652 7.375,3.984C7.41,4.16 7.441,4.309 7.438,4.316C7.438,4.32 7.301,4.262 7.094,4.16C5.773,3.516 5.672,3.469 5.625,3.465C5.461,3.445 5.32,3.582 5.332,3.746C5.34,3.813 5.375,3.883 5.422,3.922C5.438,3.938 5.82,4.168 6.266,4.438C6.711,4.703 7.082,4.93 7.086,4.934C7.098,4.941 7.016,4.977 6.758,5.07C6.563,5.141 6.395,5.207 6.371,5.227C6.344,5.242 6.316,5.273 6.297,5.309C6.238,5.414 6.262,5.563 6.355,5.641C6.398,5.676 6.469,5.699 6.516,5.699C6.535,5.699 6.715,5.664 6.91,5.625C7.109,5.582 7.273,5.551 7.277,5.555C7.277,5.555 7.09,5.949 6.859,6.426C6.438,7.297 6.434,7.297 6.434,7.367C6.43,7.43 6.43,7.449 6.453,7.496C6.535,7.66 6.758,7.688 6.883,7.555C6.898,7.531 7.137,7.145 7.41,6.691C7.684,6.242 7.906,5.875 7.91,5.879C7.914,5.883 7.969,6.023 8.031,6.191C8.156,6.531 8.164,6.551 8.211,6.598C8.293,6.676 8.402,6.691 8.508,6.641C8.602,6.594 8.648,6.52 8.648,6.41C8.648,6.383 8.621,6.215 8.586,6.035C8.551,5.859 8.523,5.715 8.523,5.711C8.527,5.711 8.895,5.879 9.336,6.09C10.371,6.574 10.266,6.531 10.344,6.531C10.535,6.531 10.66,6.328 10.574,6.156C10.563,6.125 10.535,6.09 10.523,6.078C10.508,6.066 10.129,5.832 9.68,5.559C9.172,5.25 8.867,5.063 8.875,5.059C8.883,5.055 9.02,5.004 9.18,4.949C9.34,4.895 9.492,4.84 9.516,4.824C9.688,4.723 9.68,4.461 9.496,4.367C9.422,4.328 9.379,4.332 9.027,4.406C8.848,4.441 8.695,4.469 8.695,4.469C8.691,4.465 8.879,4.074 9.109,3.598C9.34,3.125 9.531,2.719 9.539,2.695C9.566,2.613 9.531,2.488 9.465,2.434C9.402,2.379 9.313,2.355 9.23,2.371ZM9.23,2.371
+ M7.906,3.32C7.816,3.344 7.754,3.395 7.719,3.477L7.695,3.523L7.691,4.129L7.688,4.73L7.086,4.73C6.504,4.73 6.484,4.73 6.441,4.75C6.387,4.777 6.336,4.82 6.309,4.875C6.277,4.93 6.277,5.066 6.305,5.117C6.332,5.176 6.383,5.223 6.434,5.246L6.484,5.27L7.688,5.27L7.691,5.871L7.695,6.477L7.719,6.527C7.813,6.734 8.105,6.738 8.215,6.535C8.234,6.496 8.234,6.488 8.238,5.883L8.242,5.27L8.859,5.27L9.477,5.266L9.52,5.238C9.613,5.176 9.652,5.105 9.652,5C9.652,4.922 9.629,4.859 9.574,4.809C9.496,4.73 9.535,4.734 8.852,4.73L8.242,4.73L8.238,4.117C8.234,3.508 8.234,3.504 8.215,3.465C8.184,3.406 8.133,3.359 8.082,3.34C8.031,3.316 7.949,3.309 7.906,3.32ZM7.906,3.32
+
+
+ M4.64,1.85L15.36,1.85A3.69 3.69 0 0 1 19.05,5.54L19.05,7.85A3.69 3.69 0 0 1 15.36,11.54L4.64,11.54A3.69 3.69 0 0 1 0.95,7.85L0.95,5.54A3.69 3.69 0 0 1 4.64,1.85zM2.38,5.54L2.38,7.85A2.31 2.31 0 0 0 4.69,10.15L15.31,10.15A2.31 2.31 0 0 0 17.62,7.85L17.62,5.54A2.31 2.31 0 0 0 15.31,3.23L4.69,3.23A2.31 2.31 0 0 0 2.38,5.54zM14.29,1.85C14.23,1.29,14.18,0.74,13.81,0.46C13.44,0.18,12.75,0.18,12.38,0.46C12.01,0.74,11.96,1.29,11.90,1.85M8.10,1.85C8.04,1.29,7.99,0.74,7.62,0.46C7.25,0.18,6.56,0.18,6.19,0.46C5.82,0.74,5.77,1.29,5.71,1.85
+ M4.64,1.85L15.36,1.85A3.69 3.69 0 0 1 19.05,5.54L19.05,7.85A3.69 3.69 0 0 1 15.36,11.54L4.64,11.54A3.69 3.69 0 0 1 0.95,7.85L0.95,5.54A3.69 3.69 0 0 1 4.64,1.85zM2.38,5.54L2.38,7.85A2.31 2.31 0 0 0 4.69,10.15L15.31,10.15A2.31 2.31 0 0 0 17.62,7.85L17.62,5.54A2.31 2.31 0 0 0 15.31,3.23L4.69,3.23A2.31 2.31 0 0 0 2.38,5.54zM14.29,1.85C14.23,1.29,14.18,0.74,13.81,0.46C13.44,0.18,12.75,0.18,12.38,0.46C12.01,0.74,11.96,1.29,11.90,1.85M8.10,1.85C8.04,1.29,7.99,0.74,7.62,0.46C7.25,0.18,6.56,0.18,6.19,0.46C5.82,0.74,5.77,1.29,5.71,1.85
+ M5.18,4.15L14.82,4.15A1.85 1.85 0 0 1 16.67,6.00L16.67,7.38A1.85 1.85 0 0 1 14.82,9.23L5.18,9.23A1.85 1.85 0 0 1 3.33,7.38L3.33,6.00A1.85 1.85 0 0 1 5.18,4.15z
+ M 10.125 2.203 C 10.305 2.145 10.508 2.16 10.68 2.238 C 10.762 2.289 10.855 2.328 10.906 2.414 C 11 2.512 11.02 2.652 11.043 2.777 C 11.023 3.016 10.906 3.23 10.855 3.461 C 10.84 3.516 10.816 3.566 10.801 3.621 C 10.773 3.742 10.711 3.855 10.684 3.98 C 10.648 4.102 10.59 4.219 10.563 4.344 C 10.527 4.445 10.496 4.543 10.469 4.648 C 10.441 4.758 10.375 4.859 10.363 4.973 L 11.422 4.973 C 11.73 4.965 12.047 5.094 12.246 5.336 C 12.305 5.445 12.383 5.551 12.406 5.68 C 12.438 5.82 12.43 5.965 12.391 6.102 C 12.348 6.23 12.273 6.344 12.199 6.457 C 11.984 6.762 11.801 7.086 11.586 7.387 C 11.531 7.5 11.445 7.594 11.383 7.703 C 11.324 7.797 11.25 7.883 11.203 7.98 C 11.109 8.125 11.012 8.27 10.91 8.41 C 10.844 8.547 10.742 8.66 10.672 8.789 C 10.547 8.953 10.453 9.133 10.336 9.297 C 10.285 9.355 10.258 9.43 10.207 9.484 C 10.156 9.547 10.141 9.629 10.066 9.668 C 9.996 9.703 9.938 9.762 9.863 9.781 C 9.633 9.875 9.352 9.844 9.152 9.691 C 9.086 9.652 9.043 9.586 8.992 9.531 C 8.945 9.434 8.918 9.328 8.895 9.223 C 8.898 9.098 8.965 8.98 8.988 8.859 C 9.027 8.703 9.094 8.559 9.121 8.398 C 9.129 8.32 9.172 8.254 9.191 8.18 C 9.223 8.008 9.297 7.848 9.336 7.676 C 9.445 7.375 9.504 7.055 9.617 6.754 L 8.98 6.754 C 8.785 6.734 8.59 6.758 8.398 6.738 C 8.277 6.703 8.145 6.695 8.043 6.617 C 7.965 6.57 7.895 6.523 7.828 6.469 C 7.797 6.43 7.766 6.391 7.73 6.352 C 7.688 6.277 7.648 6.199 7.613 6.121 C 7.551 5.91 7.563 5.676 7.668 5.484 C 7.781 5.262 7.957 5.078 8.086 4.867 C 8.125 4.793 8.188 4.738 8.227 4.668 C 8.266 4.598 8.328 4.547 8.355 4.477 C 8.391 4.434 8.422 4.395 8.445 4.348 C 8.551 4.199 8.656 4.055 8.766 3.906 C 8.816 3.793 8.914 3.707 8.977 3.598 C 9.004 3.543 9.055 3.5 9.086 3.449 C 9.156 3.324 9.254 3.211 9.328 3.09 C 9.438 2.973 9.504 2.824 9.602 2.703 C 9.699 2.586 9.777 2.453 9.875 2.336 C 9.961 2.293 10.031 2.227 10.125 2.203 Z M 10.125 2.203
+ M10.48,4.85L10.48,8.52A0.47 0.47 0 0 1 10.01,9.00L10.01,9.00A0.47 0.47 0 0 1 9.53,8.52L9.54,4.85A0.47 0.47 0 0 1 10.01,4.38L10.01,4.38A0.47 0.47 0 0 1 10.48,4.85zM8.09,6.23L11.93,6.23A0.46 0.46 0 0 1 12.39,6.69L12.39,6.69A0.46 0.46 0 0 1 11.93,7.15L8.09,7.15A0.46 0.46 0 0 1 7.63,6.69L7.63,6.69A0.46 0.46 0 0 1 8.09,6.23z
+
+
+ M3.32,0.906C2.984,0.938 2.848,0.965 2.594,1.047C2.297,1.145 2.012,1.297 1.746,1.5C1.621,1.594 1.359,1.852 1.258,1.98C1.004,2.305 0.824,2.676 0.727,3.074C0.684,3.254 0.664,3.383 0.648,3.59C0.637,3.813 0.637,8.176 0.648,8.406C0.68,8.934 0.836,9.398 1.125,9.836C1.238,10.008 1.352,10.141 1.512,10.297C1.992,10.766 2.605,11.035 3.289,11.09C3.395,11.098 5.102,11.102 9.496,11.098L15.555,11.094L15.691,11.074C15.902,11.039 16.051,11.004 16.23,10.941C17.145,10.629 17.844,9.859 18.07,8.914C18.121,8.707 18.141,8.535 18.148,8.277L18.152,8.039L18.242,7.988C18.43,7.879 18.648,7.695 18.797,7.52C19.008,7.266 19.18,6.926 19.262,6.59C19.316,6.363 19.324,6.277 19.324,6.004C19.324,5.742 19.32,5.676 19.273,5.469C19.195,5.113 19.02,4.75 18.797,4.48C18.652,4.309 18.426,4.117 18.238,4.008L18.152,3.957L18.148,3.723C18.145,3.563 18.133,3.438 18.121,3.344C17.98,2.414 17.414,1.621 16.578,1.203C16.305,1.066 16.012,0.977 15.668,0.922C15.563,0.906 15.215,0.906 9.453,0.902C6.102,0.902 3.34,0.906 3.32,0.906ZM15.434,2.078C16.113,2.137 16.676,2.574 16.891,3.219C16.938,3.359 16.957,3.449 16.969,3.594C16.984,3.746 16.984,8.254 16.969,8.406C16.934,8.805 16.766,9.152 16.484,9.434C16.199,9.723 15.844,9.887 15.438,9.922C15.266,9.934 3.527,9.934 3.359,9.922C2.953,9.887 2.59,9.719 2.313,9.441C2.086,9.219 1.938,8.953 1.863,8.645C1.813,8.449 1.816,8.535 1.816,6C1.816,3.465 1.813,3.551 1.863,3.355C2.027,2.684 2.578,2.184 3.254,2.09C3.301,2.086 3.359,2.078 3.387,2.078C3.523,2.066 15.328,2.07 15.434,2.078ZM15.434,2.078
+ M3.32,0.906C2.984,0.938 2.848,0.965 2.594,1.047C2.297,1.145 2.012,1.297 1.746,1.5C1.621,1.594 1.359,1.852 1.258,1.98C1.004,2.305 0.824,2.676 0.727,3.074C0.684,3.254 0.664,3.383 0.648,3.59C0.637,3.813 0.637,8.176 0.648,8.406C0.68,8.934 0.836,9.398 1.125,9.836C1.238,10.008 1.352,10.141 1.512,10.297C1.992,10.766 2.605,11.035 3.289,11.09C3.395,11.098 5.102,11.102 9.496,11.098L15.555,11.094L15.691,11.074C15.902,11.039 16.051,11.004 16.23,10.941C17.145,10.629 17.844,9.859 18.07,8.914C18.121,8.707 18.141,8.535 18.148,8.277L18.152,8.039L18.242,7.988C18.43,7.879 18.648,7.695 18.797,7.52C19.008,7.266 19.18,6.926 19.262,6.59C19.316,6.363 19.324,6.277 19.324,6.004C19.324,5.742 19.32,5.676 19.273,5.469C19.195,5.113 19.02,4.75 18.797,4.48C18.652,4.309 18.426,4.117 18.238,4.008L18.152,3.957L18.148,3.723C18.145,3.563 18.133,3.438 18.121,3.344C17.98,2.414 17.414,1.621 16.578,1.203C16.305,1.066 16.012,0.977 15.668,0.922C15.563,0.906 15.215,0.906 9.453,0.902C6.102,0.902 3.34,0.906 3.32,0.906ZM15.434,2.078C16.113,2.137 16.676,2.574 16.891,3.219C16.938,3.359 16.957,3.449 16.969,3.594C16.984,3.746 16.984,8.254 16.969,8.406C16.934,8.805 16.766,9.152 16.484,9.434C16.199,9.723 15.844,9.887 15.438,9.922C15.266,9.934 3.527,9.934 3.359,9.922C2.953,9.887 2.59,9.719 2.313,9.441C2.086,9.219 1.938,8.953 1.863,8.645C1.813,8.449 1.816,8.535 1.816,6C1.816,3.465 1.813,3.551 1.863,3.355C2.027,2.684 2.578,2.184 3.254,2.09C3.301,2.086 3.359,2.078 3.387,2.078C3.523,2.066 15.328,2.07 15.434,2.078ZM15.434,2.078
+ M3.328,2.738C2.938,2.805 2.598,3.121 2.5,3.508C2.488,3.551 2.477,3.633 2.469,3.695C2.457,3.848 2.457,8.137 2.469,8.305C2.492,8.574 2.598,8.797 2.785,8.98C2.91,9.102 3.047,9.18 3.23,9.238L3.316,9.266L15.465,9.266L15.555,9.238C15.738,9.18 15.895,9.086 16.02,8.953C16.141,8.824 16.223,8.688 16.277,8.512L16.305,8.426L16.309,6.051C16.309,4.285 16.309,3.656 16.301,3.602C16.266,3.383 16.16,3.18 15.992,3.02C15.867,2.898 15.734,2.82 15.551,2.762L15.465,2.734L9.422,2.734C6.094,2.734 3.352,2.734 3.328,2.738ZM3.328,2.738
+ M9.629,2.238C9.59,2.25 9.543,2.266 9.523,2.273C9.508,2.281 9.492,2.289 9.488,2.289C9.48,2.289 9.445,2.313 9.406,2.34C9.332,2.391 9.254,2.48 9.164,2.602C9.141,2.641 9.078,2.727 9.031,2.793C8.949,2.91 8.883,3.008 8.852,3.055C8.832,3.078 8.762,3.18 8.688,3.281C8.66,3.32 8.617,3.379 8.598,3.414C8.574,3.445 8.531,3.512 8.496,3.555C8.453,3.617 8.168,4.023 8.09,4.137C8.082,4.148 8.035,4.211 7.988,4.277C7.941,4.344 7.898,4.406 7.887,4.422C7.879,4.434 7.84,4.488 7.801,4.547C7.762,4.602 7.707,4.68 7.676,4.727C7.605,4.828 7.547,4.914 7.465,5.023C7.27,5.297 7.156,5.469 7.137,5.52C7.125,5.547 7.113,5.574 7.109,5.59C7.074,5.676 7.059,5.75 7.059,5.863C7.059,5.984 7.07,6.047 7.117,6.176C7.18,6.359 7.391,6.566 7.598,6.656C7.762,6.723 7.813,6.73 8.172,6.738C8.348,6.742 8.625,6.746 8.781,6.75C8.941,6.75 9.07,6.754 9.07,6.758C9.07,6.762 9.059,6.809 9.039,6.859C9.023,6.91 8.988,7.035 8.961,7.129C8.871,7.434 8.789,7.699 8.75,7.832C8.727,7.902 8.691,8.023 8.672,8.098C8.648,8.172 8.609,8.313 8.578,8.406C8.551,8.496 8.516,8.629 8.496,8.691C8.477,8.754 8.441,8.867 8.422,8.945C8.363,9.133 8.359,9.188 8.395,9.32C8.43,9.457 8.445,9.488 8.543,9.586C8.68,9.723 8.844,9.789 9.047,9.789C9.27,9.789 9.477,9.695 9.598,9.531C9.664,9.445 9.914,9.066 9.93,9.035C9.934,9.027 9.957,8.992 9.984,8.953C10.008,8.914 10.051,8.852 10.078,8.809C10.105,8.77 10.18,8.656 10.242,8.559C10.305,8.465 10.398,8.324 10.445,8.25C10.492,8.176 10.574,8.055 10.621,7.98C10.672,7.91 10.711,7.848 10.711,7.844C10.711,7.844 10.734,7.809 10.762,7.77C10.789,7.734 10.809,7.699 10.809,7.695C10.809,7.691 10.84,7.648 10.871,7.598C10.906,7.547 10.938,7.5 10.941,7.492C10.941,7.488 10.98,7.43 11.023,7.367C11.07,7.301 11.109,7.242 11.113,7.23C11.156,7.164 11.348,6.875 11.379,6.828C11.398,6.801 11.426,6.762 11.434,6.746C11.441,6.727 11.457,6.703 11.469,6.688C11.496,6.645 11.559,6.547 11.59,6.508C11.602,6.484 11.621,6.461 11.625,6.453C11.633,6.441 11.652,6.41 11.676,6.375C11.738,6.281 11.758,6.246 11.777,6.195C11.785,6.168 11.797,6.141 11.801,6.137C11.805,6.129 11.813,6.094 11.824,6.059C11.855,5.934 11.84,5.656 11.801,5.605C11.797,5.598 11.785,5.57 11.777,5.543C11.734,5.41 11.578,5.234 11.422,5.137C11.32,5.074 11.246,5.047 11.09,5.016C10.977,4.988 10.977,4.988 10.387,4.988L9.801,4.988L9.836,4.887C9.887,4.734 9.977,4.465 10.102,4.078C10.16,3.891 10.23,3.676 10.254,3.605C10.277,3.531 10.309,3.445 10.316,3.41C10.328,3.375 10.352,3.305 10.371,3.254C10.387,3.203 10.41,3.137 10.422,3.098C10.434,3.059 10.449,2.996 10.461,2.957C10.492,2.844 10.484,2.77 10.43,2.605C10.406,2.543 10.348,2.461 10.281,2.398C10.246,2.363 10.137,2.289 10.121,2.289C10.117,2.289 10.102,2.281 10.086,2.273C9.992,2.223 9.77,2.207 9.629,2.238ZM9.629,2.238
+ M9.285,3.539C9.121,3.574 8.988,3.695 8.93,3.859L8.906,3.926L8.898,5.52L8.156,5.52C7.68,5.52 7.383,5.523 7.336,5.531C6.945,5.586 6.785,6.059 7.063,6.336C7.121,6.395 7.176,6.426 7.27,6.457C7.309,6.473 7.418,6.473 8.105,6.477L8.898,6.48L8.906,8.074L8.93,8.141C9,8.344 9.168,8.465 9.379,8.465C9.59,8.465 9.758,8.344 9.832,8.145L9.855,8.086L9.859,7.281L9.859,6.48L10.664,6.477C11.379,6.473 11.469,6.473 11.512,6.457C11.652,6.41 11.754,6.324 11.809,6.207C11.949,5.914 11.766,5.574 11.445,5.531C11.395,5.523 11.098,5.52 10.613,5.52L9.859,5.52L9.859,4.762C9.859,3.988 9.855,3.926 9.82,3.828C9.777,3.715 9.648,3.598 9.531,3.559C9.461,3.535 9.352,3.527 9.285,3.539ZM9.285,3.539
+
+
+ M3.14,0.59C0.53,0.89,-0.25,4.2,1.49,7.59C2.42,9.43,3.9,11.02,5.84,12.3C6.66,12.84,6.7,12.84,7.15,12.57C9.42,11.2,11.24,9.23,12.16,7.14C12.21,7.03,12.25,6.94,12.25,6.94C12.25,6.94,12.34,7.02,12.45,7.13C13.05,7.73,13.69,8.21,14.54,8.69C14.85,8.87,14.96,8.87,15.27,8.69C16.78,7.83,17.89,6.78,18.61,5.54C19.59,3.87,19.62,2.09,18.7,1.16C17.85,0.32,16.45,0.38,14.92,1.33C14.91,1.34,14.87,1.32,14.78,1.27C13.48,0.49,12.27,0.36,11.45,0.89L11.39,0.93L11.3,0.89C10.14,0.27,8.43,0.59,6.79,1.75C6.71,1.8,6.72,1.8,6.63,1.74C5.42,0.9,4.11,0.47,3.14,0.59M3.84,1.6C4.56,1.7,5.45,2.11,6.3,2.73C6.63,2.97,6.8,2.98,7.1,2.75C8.45,1.76,9.77,1.36,10.65,1.7C12,2.21,12.26,4.45,11.24,6.74C10.67,8,9.77,9.21,8.64,10.23C8.09,10.73,7.25,11.35,6.75,11.64L6.71,11.66L6.65,11.62C4.88,10.54,3.41,9.03,2.48,7.34C1.86,6.2,1.52,4.88,1.57,3.86C1.66,2.24,2.49,1.41,3.84,1.6M12.76,1.58C13.29,1.62,13.84,1.85,14.54,2.3C14.73,2.43,14.76,2.43,14.91,2.43C15.05,2.43,15.08,2.43,15.27,2.3C17.03,1.16,18.25,1.38,18.36,2.85C18.48,4.43,17.13,6.4,15.06,7.65C14.88,7.76,14.93,7.76,14.75,7.65C13.94,7.16,13.21,6.55,12.68,5.91L12.62,5.84L12.65,5.75C13.06,4.22,12.9,2.68,12.23,1.72C12.17,1.64,12.17,1.64,12.3,1.61C12.46,1.57,12.57,1.57,12.76,1.58M14.32,9.62C13.75,9.81,13.8,10.66,14.39,10.76C14.54,10.78,18.88,10.77,18.95,10.75C19.46,10.57,19.52,9.9,19.05,9.66C18.92,9.59,19.11,9.6,16.64,9.6L14.39,9.6L14.32,9.62M10.06,11.65C9.4,11.75,9.39,12.73,10.05,12.84C10.16,12.87,14.79,12.87,14.9,12.85C15.52,12.73,15.58,11.9,14.99,11.67L14.91,11.64L12.52,11.64C11.2,11.64,10.09,11.64,10.06,11.65
+ M3.14,0.59C0.53,0.89,-0.25,4.2,1.49,7.59C2.42,9.43,3.9,11.02,5.84,12.3C6.66,12.84,6.7,12.84,7.15,12.57C9.42,11.2,11.24,9.23,12.16,7.14C12.21,7.03,12.25,6.94,12.25,6.94C12.25,6.94,12.34,7.02,12.45,7.13C13.05,7.73,13.69,8.21,14.54,8.69C14.85,8.87,14.96,8.87,15.27,8.69C16.78,7.83,17.89,6.78,18.61,5.54C19.59,3.87,19.62,2.09,18.7,1.16C17.85,0.32,16.45,0.38,14.92,1.33C14.91,1.34,14.87,1.32,14.78,1.27C13.48,0.49,12.27,0.36,11.45,0.89L11.39,0.93L11.3,0.89C10.14,0.27,8.43,0.59,6.79,1.75C6.71,1.8,6.72,1.8,6.63,1.74C5.42,0.9,4.11,0.47,3.14,0.59M3.84,1.6C4.56,1.7,5.45,2.11,6.3,2.73C6.63,2.97,6.8,2.98,7.1,2.75C8.45,1.76,9.77,1.36,10.65,1.7C12,2.21,12.26,4.45,11.24,6.74C10.67,8,9.77,9.21,8.64,10.23C8.09,10.73,7.25,11.35,6.75,11.64L6.71,11.66L6.65,11.62C4.88,10.54,3.41,9.03,2.48,7.34C1.86,6.2,1.52,4.88,1.57,3.86C1.66,2.24,2.49,1.41,3.84,1.6M12.76,1.58C13.29,1.62,13.84,1.85,14.54,2.3C14.73,2.43,14.76,2.43,14.91,2.43C15.05,2.43,15.08,2.43,15.27,2.3C17.03,1.16,18.25,1.38,18.36,2.85C18.48,4.43,17.13,6.4,15.06,7.65C14.88,7.76,14.93,7.76,14.75,7.65C13.94,7.16,13.21,6.55,12.68,5.91L12.62,5.84L12.65,5.75C13.06,4.22,12.9,2.68,12.23,1.72C12.17,1.64,12.17,1.64,12.3,1.61C12.46,1.57,12.57,1.57,12.76,1.58M14.32,9.62C13.75,9.81,13.8,10.66,14.39,10.76C14.54,10.78,18.88,10.77,18.95,10.75C19.46,10.57,19.52,9.9,19.05,9.66C18.92,9.59,19.11,9.6,16.64,9.6L14.39,9.6L14.32,9.62M10.06,11.65C9.4,11.75,9.39,12.73,10.05,12.84C10.16,12.87,14.79,12.87,14.9,12.85C15.52,12.73,15.58,11.9,14.99,11.67L14.91,11.64L12.52,11.64C11.2,11.64,10.09,11.64,10.06,11.65
+ M3.2,1.59C2.17,1.73,1.59,2.58,1.56,3.97C1.51,6.63,3.61,9.79,6.68,11.65L6.71,11.67L6.93,11.53C9.97,9.58,11.92,6.59,11.87,3.97C11.81,1.33,9.77,0.8,7.11,2.74C6.79,2.97,6.64,2.97,6.29,2.71C5.13,1.89,4,1.47,3.2,1.59M12.39,1.59C12.32,1.6,12.17,1.64,12.17,1.64C12.17,1.65,12.2,1.68,12.22,1.73C12.88,2.69,13.04,4.09,12.67,5.63L12.62,5.84L12.66,5.89C13.18,6.54,13.95,7.18,14.8,7.69C14.91,7.76,14.89,7.76,15.07,7.65C17.02,6.47,18.32,4.67,18.37,3.1C18.41,1.42,17.08,1.08,15.26,2.3C14.99,2.48,14.83,2.48,14.58,2.32C13.7,1.75,12.93,1.49,12.39,1.59
+ M0,6.5L0,13L20,13L20,0L0,0L0,6.5M3.64,1.58C4.4,1.63,5.37,2.05,6.3,2.73C6.63,2.97,6.8,2.98,7.1,2.75C8.97,1.37,10.67,1.2,11.41,2.32C12.36,3.74,11.8,6.42,10.1,8.65C9.24,9.77,7.89,10.98,6.75,11.64L6.71,11.66L6.65,11.62C4.23,10.14,2.39,7.86,1.78,5.59C1.19,3.38,1.83,1.69,3.31,1.58C3.46,1.57,3.48,1.57,3.64,1.58M12.76,1.58C13.28,1.62,13.84,1.85,14.54,2.3C14.83,2.49,14.98,2.49,15.25,2.31C17.01,1.16,18.25,1.37,18.36,2.85C18.48,4.43,17.12,6.4,15.06,7.65C14.88,7.76,14.93,7.76,14.75,7.65C13.95,7.16,13.23,6.56,12.69,5.92C12.62,5.84,12.62,5.85,12.66,5.72C13.05,4.14,12.89,2.68,12.23,1.72C12.17,1.64,12.17,1.64,12.3,1.61C12.45,1.57,12.57,1.57,12.76,1.58M12.4,7.09C12.45,7.14,12.49,7.18,12.49,7.18C12.49,7.18,12.44,7.14,12.39,7.09C12.34,7.03,12.3,6.99,12.3,6.99C12.3,6.99,12.35,7.03,12.4,7.09M17.43,7.07C17.43,7.07,17.4,7.1,17.37,7.13L17.32,7.18L17.37,7.13C17.42,7.07,17.43,7.07,17.43,7.07M17.72,9.6C17.13,9.6,16.15,9.6,15.56,9.6C14.96,9.6,15.45,9.59,16.64,9.59C17.83,9.59,18.32,9.6,17.72,9.6M3.65,10.52C3.67,10.54,3.68,10.56,3.68,10.56C3.68,10.56,3.66,10.54,3.64,10.52C3.62,10.5,3.61,10.49,3.61,10.49C3.61,10.49,3.63,10.5,3.65,10.52M9.79,10.52C9.79,10.52,9.77,10.54,9.75,10.57L9.7,10.61L9.75,10.56C9.78,10.52,9.79,10.52,9.79,10.52
+ M5.02,3.89C3.62,4.12,3.25,5.94,4.23,7.72C4.69,8.56,5.37,9.28,6.27,9.87C6.69,10.14,6.78,10.13,7.41,9.67C9.13,8.42,10.07,6.42,9.59,4.98C9.21,3.83,8.07,3.55,6.81,4.31C6.68,4.39,6.72,4.39,6.56,4.3C6.02,3.97,5.45,3.82,5.02,3.89
+ M3.14,0.59C0.53,0.89,-0.25,4.2,1.49,7.59C2.42,9.43,3.9,11.02,5.84,12.3C6.66,12.84,6.7,12.84,7.15,12.57C9.42,11.2,11.24,9.23,12.16,7.14C12.21,7.03,12.25,6.94,12.25,6.94C12.25,6.94,12.34,7.02,12.45,7.13C13.05,7.73,13.69,8.21,14.54,8.69C14.85,8.87,14.96,8.87,15.27,8.69C16.78,7.83,17.89,6.78,18.61,5.54C19.59,3.87,19.62,2.09,18.7,1.16C17.85,0.32,16.45,0.38,14.92,1.33C14.91,1.34,14.87,1.32,14.78,1.27C13.48,0.49,12.27,0.36,11.45,0.89L11.39,0.93L11.3,0.89C10.14,0.27,8.43,0.59,6.79,1.75C6.71,1.8,6.72,1.8,6.63,1.74C5.42,0.9,4.11,0.47,3.14,0.59M3.84,1.6C4.56,1.7,5.45,2.11,6.3,2.73C6.63,2.97,6.8,2.98,7.1,2.75C8.45,1.76,9.77,1.36,10.65,1.7C12,2.21,12.26,4.45,11.24,6.74C10.67,8,9.77,9.21,8.64,10.23C8.09,10.73,7.25,11.35,6.75,11.64L6.71,11.66L6.65,11.62C4.88,10.54,3.41,9.03,2.48,7.34C1.86,6.2,1.52,4.88,1.57,3.86C1.66,2.24,2.49,1.41,3.84,1.6M12.76,1.58C13.29,1.62,13.84,1.85,14.54,2.3C14.73,2.43,14.76,2.43,14.91,2.43C15.05,2.43,15.08,2.43,15.27,2.3C17.03,1.16,18.25,1.38,18.36,2.85C18.48,4.43,17.13,6.4,15.06,7.65C14.88,7.76,14.93,7.76,14.75,7.65C13.94,7.16,13.21,6.55,12.68,5.91L12.62,5.84L12.65,5.75C13.06,4.22,12.9,2.68,12.23,1.72C12.17,1.64,12.17,1.64,12.3,1.61C12.46,1.57,12.57,1.57,12.76,1.58M14.32,9.62C13.75,9.81,13.8,10.66,14.39,10.76C14.54,10.78,18.88,10.77,18.95,10.75C19.46,10.57,19.52,9.9,19.05,9.66C18.92,9.59,19.11,9.6,16.64,9.6L14.39,9.6L14.32,9.62M10.06,11.65C9.4,11.75,9.39,12.73,10.05,12.84C10.16,12.87,14.79,12.87,14.9,12.85C15.52,12.73,15.58,11.9,14.99,11.67L14.91,11.64L12.52,11.64C11.2,11.64,10.09,11.64,10.06,11.65
+
+
+ M5.77,0.55C1.84,0.82,-0.75,4.85,0.62,8.55C2.02,12.32,6.68,13.66,9.86,11.2C9.98,11.1,10,11.09,10.02,11.11C10.05,11.18,10.63,11.57,10.91,11.72C14.42,13.64,18.8,11.65,19.63,7.76C20.48,3.76,17.17,0.11,13.11,0.57C12,0.7,10.75,1.23,10.03,1.88L10,1.9L9.89,1.8C8.73,0.89,7.26,0.45,5.77,0.55M14.02,1.55C17.58,1.72,19.81,5.45,18.27,8.65C16.79,11.69,12.8,12.41,10.36,10.07C10.26,9.97,10.22,9.95,10.1,9.87C9.87,9.74,9.64,9.57,9.45,9.41L9.41,9.36L9.27,9.49C8.14,10.64,6.44,11.05,4.92,10.55C2.35,9.7,1.21,6.72,2.55,4.37C3.55,2.63,5.65,1.83,7.55,2.45C8.21,2.66,8.78,3.01,9.27,3.5L9.41,3.64L9.45,3.59C9.64,3.43,9.92,3.23,10.13,3.11C10.21,3.07,10.26,3.03,10.34,2.95C11.23,2.09,12.34,1.61,13.55,1.55C13.79,1.54,13.8,1.54,14.02,1.55
+ M5.77,0.55C1.84,0.82,-0.75,4.85,0.62,8.55C2.02,12.32,6.68,13.66,9.86,11.2C9.98,11.1,10,11.09,10.02,11.11C10.05,11.18,10.63,11.57,10.91,11.72C14.42,13.64,18.8,11.65,19.63,7.76C20.48,3.76,17.17,0.11,13.11,0.57C12,0.7,10.75,1.23,10.03,1.88L10,1.9L9.89,1.8C8.73,0.89,7.26,0.45,5.77,0.55M14.02,1.55C17.58,1.72,19.81,5.45,18.27,8.65C16.79,11.69,12.8,12.41,10.36,10.07C10.26,9.97,10.22,9.95,10.1,9.87C9.87,9.74,9.64,9.57,9.45,9.41L9.41,9.36L9.27,9.49C8.14,10.64,6.44,11.05,4.92,10.55C2.35,9.7,1.21,6.72,2.55,4.37C3.55,2.63,5.65,1.83,7.55,2.45C8.21,2.66,8.78,3.01,9.27,3.5L9.41,3.64L9.45,3.59C9.64,3.43,9.92,3.23,10.13,3.11C10.21,3.07,10.26,3.03,10.34,2.95C11.23,2.09,12.34,1.61,13.55,1.55C13.79,1.54,13.8,1.54,14.02,1.55
+ M13.3,2.61C12.83,2.66,12.42,2.76,12,2.95C11.38,3.23,10.82,3.7,10.41,4.28L10.33,4.39L9.54,4.39C8.54,4.39,8.48,4.39,8.19,4.53L8.12,4.56L8.05,4.5C6.81,3.32,4.81,3.55,3.86,4.98C3.31,5.8,3.25,6.9,3.71,7.77C4.56,9.38,6.66,9.75,8.01,8.54L8.12,8.44L8.19,8.47C8.48,8.61,8.48,8.61,9.48,8.61L10.34,8.61L10.41,8.72C11.61,10.46,13.99,10.92,15.76,9.76C17.13,8.86,17.79,7.22,17.42,5.61C17.15,4.45,16.31,3.42,15.21,2.94C14.83,2.77,14.52,2.68,14.07,2.62C13.93,2.61,13.44,2.6,13.3,2.61
+ M5.77,0.55C1.84,0.82,-0.75,4.85,0.62,8.55C2.02,12.32,6.68,13.66,9.86,11.2C9.98,11.1,10,11.09,10.02,11.11C10.05,11.18,10.63,11.57,10.91,11.72C14.42,13.64,18.8,11.65,19.63,7.76C20.48,3.76,17.17,0.11,13.11,0.57C12,0.7,10.75,1.23,10.03,1.88L10,1.9L9.89,1.8C8.73,0.89,7.26,0.45,5.77,0.55M13.81,2.61C16.99,2.79,18.64,6.45,16.66,8.93C14.89,11.16,11.38,10.77,10.12,8.21C8.9,5.71,10.62,2.76,13.41,2.61C13.62,2.6,13.62,2.6,13.81,2.61M6.54,3.77C8.56,4.09,9.57,6.34,8.44,8.04C7.42,9.57,5.15,9.66,4.01,8.22C2.64,6.49,3.71,3.98,5.93,3.76C6.02,3.75,6.44,3.76,6.54,3.77
+ M5.84,5.67C4.95,6.06,4.22,6.39,4.22,6.39C4.21,6.39,4.94,6.72,5.83,7.12C6.72,7.52,7.46,7.84,7.46,7.84C7.46,7.83,7.34,7.59,7.2,7.3C7.05,7.01,6.93,6.77,6.93,6.76C6.94,6.75,6.77,6.76,11.2,6.59C13.46,6.51,15.35,6.44,15.4,6.43L15.5,6.43L15.5,6.39C15.5,6.38,15.5,6.36,15.49,6.36C15.49,6.36,13.56,6.28,11.21,6.19C8.86,6.1,6.93,6.03,6.93,6.02C6.93,6.02,7.05,5.78,7.2,5.49C7.47,4.95,7.46,4.95,7.45,4.95C7.45,4.95,6.72,5.27,5.84,5.67
+ M5.77,0.55C1.84,0.82,-0.75,4.85,0.62,8.55C2.02,12.32,6.68,13.66,9.86,11.2C9.98,11.1,10,11.09,10.02,11.11C10.05,11.18,10.63,11.57,10.91,11.72C14.42,13.64,18.8,11.65,19.63,7.76C20.48,3.76,17.17,0.11,13.11,0.57C12,0.7,10.75,1.23,10.03,1.88L10,1.9L9.89,1.8C8.73,0.89,7.26,0.45,5.77,0.55M14.02,1.55C17.58,1.72,19.81,5.45,18.27,8.65C16.79,11.69,12.8,12.41,10.36,10.07C10.26,9.97,10.22,9.95,10.1,9.87C9.87,9.74,9.64,9.57,9.45,9.41L9.41,9.36L9.27,9.49C8.14,10.64,6.44,11.05,4.92,10.55C2.35,9.7,1.21,6.72,2.55,4.37C3.55,2.63,5.65,1.83,7.55,2.45C8.21,2.66,8.78,3.01,9.27,3.5L9.41,3.64L9.45,3.59C9.64,3.43,9.92,3.23,10.13,3.11C10.21,3.07,10.26,3.03,10.34,2.95C11.23,2.09,12.34,1.61,13.55,1.55C13.79,1.54,13.8,1.54,14.02,1.55
+
+
+ M21.797,3.984C21.613,4.031 21.434,4.176 21.352,4.34C21.27,4.512 21.273,4.363 21.273,6.094L21.273,7.637L21.297,7.715C21.41,8.109 21.816,8.316 22.203,8.172C22.324,8.125 22.465,8.008 22.531,7.887C22.555,7.855 22.582,7.789 22.598,7.746L22.625,7.664L22.625,4.523L22.602,4.457C22.535,4.254 22.418,4.121 22.234,4.035C22.188,4.012 22.117,3.988 22.086,3.98C22.004,3.965 21.867,3.969 21.797,3.984ZM21.797,3.984M3.578,1C2.93,1.063 2.328,1.348 1.879,1.809C1.742,1.945 1.715,1.977 1.633,2.086C1.34,2.473 1.152,2.945 1.094,3.43C1.074,3.617 1.074,8.383 1.094,8.57C1.145,8.98 1.285,9.383 1.504,9.73C1.621,9.914 1.703,10.012 1.879,10.191C2.309,10.633 2.867,10.906 3.504,10.992C3.59,11.004 4.836,11.004 10.656,11.004L17.703,11.004L17.852,10.98C18.461,10.887 18.973,10.629 19.402,10.199C19.809,9.793 20.066,9.297 20.168,8.73C20.211,8.5 20.211,8.449 20.207,5.91L20.203,3.477L20.184,3.34C20.082,2.73 19.824,2.223 19.402,1.801C19.164,1.563 18.922,1.391 18.625,1.254C18.379,1.137 18.156,1.07 17.859,1.02L17.727,0.996L10.695,0.992C6.828,0.992 3.625,0.996 3.578,1ZM17.223,2.266C17.527,2.301 17.789,2.398 18.059,2.578C18.148,2.637 18.211,2.688 18.32,2.801C18.492,2.973 18.574,3.082 18.672,3.281C18.785,3.504 18.848,3.715 18.871,3.953C18.883,4.105 18.883,7.91 18.871,8.051C18.844,8.289 18.781,8.504 18.672,8.719C18.582,8.902 18.496,9.023 18.355,9.168C18.09,9.441 17.813,9.605 17.449,9.695C17.215,9.754 17.738,9.75 10.648,9.75C6.176,9.75 4.137,9.746 4.078,9.738C3.371,9.652 2.793,9.207 2.535,8.555C2.488,8.434 2.445,8.254 2.426,8.113C2.402,7.941 2.402,4.059 2.426,3.887C2.539,3.027 3.227,2.352 4.082,2.262C4.129,2.258 7.004,2.254 10.629,2.25C16.266,2.25 17.109,2.254 17.223,2.266ZM17.223,2.266M4.637,3.199C4.426,3.219 4.211,3.285 4.047,3.387C3.656,3.621 3.406,4.012 3.359,4.461C3.355,4.516 3.352,4.777 3.352,5.047L3.352,5.531L5.59,5.531L5.59,4.371L7.391,4.371L7.391,5.531L10.645,5.527L13.895,5.523L13.898,4.922L13.898,4.32L15.691,4.32L15.691,4.922L15.695,5.523L17.934,5.523L17.938,5.102C17.941,4.66 17.934,4.438 17.902,4.309C17.816,3.895 17.531,3.527 17.152,3.34C17.043,3.285 16.891,3.234 16.77,3.215C16.68,3.195 16.516,3.195 14.109,3.191L11.539,3.191L11.539,4.371L9.738,4.371L9.738,3.191L7.227,3.191C5.848,3.191 4.68,3.195 4.637,3.199ZM4.637,3.199
+ M21.797,3.984C21.613,4.031 21.434,4.176 21.352,4.34C21.27,4.512 21.273,4.363 21.273,6.094L21.273,7.637L21.297,7.715C21.41,8.109 21.816,8.316 22.203,8.172C22.324,8.125 22.465,8.008 22.531,7.887C22.555,7.855 22.582,7.789 22.598,7.746L22.625,7.664L22.625,4.523L22.602,4.457C22.535,4.254 22.418,4.121 22.234,4.035C22.188,4.012 22.117,3.988 22.086,3.98C22.004,3.965 21.867,3.969 21.797,3.984ZM21.797,3.984M3.578,1C2.93,1.063 2.328,1.348 1.879,1.809C1.742,1.945 1.715,1.977 1.633,2.086C1.34,2.473 1.152,2.945 1.094,3.43C1.074,3.617 1.074,8.383 1.094,8.57C1.145,8.98 1.285,9.383 1.504,9.73C1.621,9.914 1.703,10.012 1.879,10.191C2.309,10.633 2.867,10.906 3.504,10.992C3.59,11.004 4.836,11.004 10.656,11.004L17.703,11.004L17.852,10.98C18.461,10.887 18.973,10.629 19.402,10.199C19.809,9.793 20.066,9.297 20.168,8.73C20.211,8.5 20.211,8.449 20.207,5.91L20.203,3.477L20.184,3.34C20.082,2.73 19.824,2.223 19.402,1.801C19.164,1.563 18.922,1.391 18.625,1.254C18.379,1.137 18.156,1.07 17.859,1.02L17.727,0.996L10.695,0.992C6.828,0.992 3.625,0.996 3.578,1ZM17.223,2.266C17.527,2.301 17.789,2.398 18.059,2.578C18.148,2.637 18.211,2.688 18.32,2.801C18.492,2.973 18.574,3.082 18.672,3.281C18.785,3.504 18.848,3.715 18.871,3.953C18.883,4.105 18.883,7.91 18.871,8.051C18.844,8.289 18.781,8.504 18.672,8.719C18.582,8.902 18.496,9.023 18.355,9.168C18.09,9.441 17.813,9.605 17.449,9.695C17.215,9.754 17.738,9.75 10.648,9.75C6.176,9.75 4.137,9.746 4.078,9.738C3.371,9.652 2.793,9.207 2.535,8.555C2.488,8.434 2.445,8.254 2.426,8.113C2.402,7.941 2.402,4.059 2.426,3.887C2.539,3.027 3.227,2.352 4.082,2.262C4.129,2.258 7.004,2.254 10.629,2.25C16.266,2.25 17.109,2.254 17.223,2.266ZM17.223,2.266
+ M3.352,6.945C3.352,7.211 3.355,7.473 3.359,7.535C3.402,7.98 3.652,8.379 4.047,8.613C4.223,8.719 4.43,8.781 4.656,8.801C4.746,8.809 6.633,8.809 10.73,8.809C16.336,8.805 16.68,8.805 16.77,8.785C17.277,8.691 17.695,8.336 17.859,7.855C17.93,7.645 17.941,7.492 17.938,6.898L17.934,6.477L10.645,6.473L3.352,6.469ZM3.352,6.945
+ M12.176,2.867C12.152,2.879 12.121,2.902 12.109,2.918C12.094,2.934 11.785,3.441 11.422,4.047C11.055,4.652 10.754,5.148 10.75,5.148C10.746,5.148 10.656,4.93 10.547,4.66C10.426,4.363 10.336,4.156 10.316,4.137C10.281,4.09 10.215,4.059 10.148,4.059C10.023,4.063 9.93,4.152 9.93,4.277C9.93,4.305 9.977,4.555 10.035,4.836C10.094,5.113 10.141,5.344 10.137,5.348C10.137,5.348 9.613,5.098 8.977,4.785C8.336,4.477 7.801,4.219 7.781,4.211C7.676,4.176 7.566,4.223 7.516,4.324C7.477,4.402 7.484,4.496 7.539,4.563C7.563,4.59 7.906,4.801 8.688,5.273C9.305,5.641 9.805,5.949 9.801,5.949C9.797,5.953 9.57,6.039 9.297,6.141C9.02,6.238 8.777,6.332 8.758,6.344C8.609,6.426 8.605,6.629 8.75,6.727C8.816,6.773 8.828,6.77 9.422,6.645C9.727,6.582 9.977,6.531 9.977,6.535C9.98,6.535 9.73,7.055 9.422,7.688C9.113,8.32 8.855,8.859 8.852,8.879C8.824,8.973 8.871,9.074 8.961,9.121C9.051,9.172 9.18,9.152 9.234,9.074C9.246,9.059 9.555,8.551 9.918,7.949C10.281,7.348 10.586,6.852 10.59,6.848C10.594,6.844 10.676,7.051 10.77,7.309C10.965,7.836 10.973,7.855 11.004,7.887C11.086,7.977 11.238,7.977 11.32,7.895C11.363,7.852 11.391,7.785 11.391,7.734C11.391,7.719 11.344,7.477 11.285,7.199C11.23,6.922 11.184,6.695 11.184,6.691C11.188,6.691 11.695,6.93 12.316,7.223C12.938,7.512 13.465,7.762 13.488,7.77C13.594,7.816 13.719,7.77 13.773,7.668C13.816,7.586 13.793,7.465 13.727,7.402C13.715,7.391 13.219,7.086 12.621,6.727C12.023,6.363 11.527,6.063 11.523,6.055C11.512,6.047 11.609,6.012 11.988,5.879C12.25,5.789 12.477,5.711 12.492,5.703C12.504,5.695 12.531,5.672 12.551,5.652C12.676,5.512 12.574,5.285 12.387,5.289C12.359,5.289 12.113,5.336 11.844,5.391C11.574,5.445 11.355,5.488 11.352,5.484C11.352,5.484 11.605,4.953 11.922,4.305C12.465,3.184 12.492,3.125 12.492,3.07C12.492,3.012 12.473,2.953 12.43,2.91C12.375,2.852 12.254,2.832 12.176,2.867ZM12.176,2.867
+ M4.637,3.199C4.426,3.219 4.211,3.285 4.047,3.387C3.656,3.621 3.406,4.012 3.359,4.461C3.355,4.516 3.352,4.777 3.352,5.047L3.352,5.531L5.59,5.531L5.59,4.371L7.391,4.371L7.391,5.531L10.645,5.527L13.895,5.523L13.898,4.922L13.898,4.32L15.691,4.32L15.691,4.922L15.695,5.523L17.934,5.523L17.938,5.102C17.941,4.66 17.934,4.438 17.902,4.309C17.816,3.895 17.531,3.527 17.152,3.34C17.043,3.285 16.891,3.234 16.77,3.215C16.68,3.195 16.516,3.195 14.109,3.191L11.539,3.191L11.539,4.371L9.738,4.371L9.738,3.191L7.227,3.191C5.848,3.191 4.68,3.195 4.637,3.199ZM4.637,3.199
+
+
+ M4.594,0.09C3.738,0.16 2.895,0.488 2.156,1.039C1.227,1.73 0.586,2.672 0.379,3.648C0.344,3.828 0.324,3.961 0.301,4.266C0.18,5.754 0.18,7.258 0.301,8.746C0.34,9.223 0.387,9.465 0.508,9.813C1.02,11.301 2.555,12.574 4.172,12.863C4.543,12.93 4.188,12.926 8.559,12.926C12.332,12.926 12.523,12.926 12.672,12.906C13.512,12.809 14.297,12.48 15.016,11.934C15.219,11.781 15.387,11.633 15.582,11.43C15.938,11.066 16.203,10.699 16.422,10.273C16.465,10.188 16.5,10.117 16.504,10.109C16.504,10.102 16.574,10.09 16.68,10.074C17.336,9.984 17.43,9.969 17.637,9.898C18.574,9.586 19.324,8.699 19.617,7.547C19.711,7.184 19.742,6.91 19.742,6.504C19.746,6.102 19.715,5.848 19.625,5.484C19.348,4.352 18.633,3.477 17.715,3.129C17.5,3.051 17.367,3.02 16.887,2.957C16.699,2.93 16.535,2.906 16.523,2.906C16.508,2.902 16.484,2.863 16.43,2.758C16.117,2.129 15.613,1.531 15.016,1.074C14.246,0.492 13.395,0.156 12.512,0.09C12.348,0.078 4.746,0.078 4.594,0.09ZM12.559,1.684C13.262,1.789 13.906,2.133 14.445,2.68C14.871,3.117 15.133,3.594 15.215,4.074C15.23,4.18 15.262,4.547 15.285,4.898C15.355,6.055 15.352,7.117 15.273,8.27C15.254,8.602 15.223,8.902 15.203,8.996C15.109,9.457 14.855,9.906 14.453,10.32C13.91,10.879 13.242,11.23 12.547,11.328C12.422,11.344 12.211,11.344 8.57,11.344C5.465,11.344 4.703,11.344 4.621,11.332C3.926,11.246 3.25,10.902 2.703,10.355C2.395,10.043 2.176,9.727 2.035,9.383C1.941,9.148 1.91,8.996 1.879,8.637C1.766,7.258 1.766,5.754 1.879,4.375C1.91,4.016 1.941,3.863 2.035,3.629C2.176,3.285 2.395,2.965 2.703,2.656C3.297,2.066 4.008,1.723 4.762,1.668C4.785,1.664 6.523,1.664 8.625,1.664C12.207,1.664 12.453,1.668 12.559,1.684ZM17.031,4.578C17.57,4.684 18.035,5.344 18.145,6.172C18.184,6.438 18.164,6.793 18.105,7.07C17.953,7.75 17.547,8.285 17.086,8.41C17.016,8.43 16.859,8.453 16.852,8.445C16.852,8.445 16.855,8.344 16.863,8.219C16.938,7.113 16.938,5.895 16.863,4.797C16.855,4.676 16.852,4.57 16.852,4.563C16.852,4.547 16.902,4.551 17.031,4.578ZM17.031,4.578M5.074,2.586C4.289,2.664 3.543,3.113 3.094,3.785C2.961,3.984 2.828,4.289 2.781,4.512C2.727,4.773 2.719,4.949 2.762,5.086C2.836,5.328 3.012,5.504 3.262,5.582C3.367,5.613 3.555,5.613 3.66,5.582C3.961,5.488 4.156,5.246 4.191,4.934C4.195,4.879 4.207,4.813 4.219,4.785C4.313,4.492 4.637,4.199 4.984,4.086C5.027,4.074 5.074,4.059 5.09,4.055C5.105,4.051 5.211,4.047 5.328,4.039C5.508,4.031 5.559,4.027 5.613,4.012C5.859,3.934 6.035,3.758 6.109,3.512C6.145,3.402 6.145,3.219 6.109,3.109C6.035,2.859 5.863,2.688 5.613,2.609C5.555,2.59 5.523,2.586 5.328,2.586C5.211,2.582 5.098,2.586 5.074,2.586ZM5.074,2.586
+ M4.594,0.09C3.738,0.16 2.895,0.488 2.156,1.039C1.227,1.73 0.586,2.672 0.379,3.648C0.344,3.828 0.324,3.961 0.301,4.266C0.18,5.754 0.18,7.258 0.301,8.746C0.34,9.223 0.387,9.465 0.508,9.813C1.02,11.301 2.555,12.574 4.172,12.863C4.543,12.93 4.188,12.926 8.559,12.926C12.332,12.926 12.523,12.926 12.672,12.906C13.512,12.809 14.297,12.48 15.016,11.934C15.219,11.781 15.387,11.633 15.582,11.43C15.938,11.066 16.203,10.699 16.422,10.273C16.465,10.188 16.5,10.117 16.504,10.109C16.504,10.102 16.574,10.09 16.68,10.074C17.336,9.984 17.43,9.969 17.637,9.898C18.574,9.586 19.324,8.699 19.617,7.547C19.711,7.184 19.742,6.91 19.742,6.504C19.746,6.102 19.715,5.848 19.625,5.484C19.348,4.352 18.633,3.477 17.715,3.129C17.5,3.051 17.367,3.02 16.887,2.957C16.699,2.93 16.535,2.906 16.523,2.906C16.508,2.902 16.484,2.863 16.43,2.758C16.117,2.129 15.613,1.531 15.016,1.074C14.246,0.492 13.395,0.156 12.512,0.09C12.348,0.078 4.746,0.078 4.594,0.09ZM12.559,1.684C13.262,1.789 13.906,2.133 14.445,2.68C14.871,3.117 15.133,3.594 15.215,4.074C15.23,4.18 15.262,4.547 15.285,4.898C15.355,6.055 15.352,7.117 15.273,8.27C15.254,8.602 15.223,8.902 15.203,8.996C15.109,9.457 14.855,9.906 14.453,10.32C13.91,10.879 13.242,11.23 12.547,11.328C12.422,11.344 12.211,11.344 8.57,11.344C5.465,11.344 4.703,11.344 4.621,11.332C3.926,11.246 3.25,10.902 2.703,10.355C2.395,10.043 2.176,9.727 2.035,9.383C1.941,9.148 1.91,8.996 1.879,8.637C1.766,7.258 1.766,5.754 1.879,4.375C1.91,4.016 1.941,3.863 2.035,3.629C2.176,3.285 2.395,2.965 2.703,2.656C3.297,2.066 4.008,1.723 4.762,1.668C4.785,1.664 6.523,1.664 8.625,1.664C12.207,1.664 12.453,1.668 12.559,1.684ZM17.031,4.578C17.57,4.684 18.035,5.344 18.145,6.172C18.184,6.438 18.164,6.793 18.105,7.07C17.953,7.75 17.547,8.285 17.086,8.41C17.016,8.43 16.859,8.453 16.852,8.445C16.852,8.445 16.855,8.344 16.863,8.219C16.938,7.113 16.938,5.895 16.863,4.797C16.855,4.676 16.852,4.57 16.852,4.563C16.852,4.547 16.902,4.551 17.031,4.578ZM17.031,4.578M5.074,2.586C4.289,2.664 3.543,3.113 3.094,3.785C2.961,3.984 2.828,4.289 2.781,4.512C2.727,4.773 2.719,4.949 2.762,5.086C2.836,5.328 3.012,5.504 3.262,5.582C3.367,5.613 3.555,5.613 3.66,5.582C3.961,5.488 4.156,5.246 4.191,4.934C4.195,4.879 4.207,4.813 4.219,4.785C4.313,4.492 4.637,4.199 4.984,4.086C5.027,4.074 5.074,4.059 5.09,4.055C5.105,4.051 5.211,4.047 5.328,4.039C5.508,4.031 5.559,4.027 5.613,4.012C5.859,3.934 6.035,3.758 6.109,3.512C6.145,3.402 6.145,3.219 6.109,3.109C6.035,2.859 5.863,2.688 5.613,2.609C5.555,2.59 5.523,2.586 5.328,2.586C5.211,2.582 5.098,2.586 5.074,2.586ZM5.074,2.586
+ M4.969,2.074C4.652,2.105 4.422,2.16 4.16,2.262C3.449,2.539 2.844,3.082 2.527,3.727C2.379,4.023 2.32,4.242 2.281,4.66C2.156,5.918 2.16,7.219 2.289,8.434C2.34,8.887 2.449,9.207 2.695,9.586C2.875,9.855 3.176,10.164 3.453,10.363C3.867,10.66 4.309,10.84 4.801,10.918C4.91,10.934 5.113,10.934 8.523,10.934C11.953,10.934 12.141,10.934 12.25,10.918C12.703,10.848 13.105,10.691 13.492,10.434C14.012,10.09 14.422,9.59 14.617,9.055C14.699,8.836 14.73,8.699 14.758,8.426C14.895,7.168 14.895,5.84 14.758,4.586C14.719,4.215 14.656,3.996 14.496,3.684C14.328,3.355 14.117,3.09 13.82,2.828C13.367,2.43 12.836,2.184 12.227,2.09C12.16,2.078 11.371,2.074 8.574,2.074C6.613,2.074 4.988,2.074 4.969,2.074ZM4.969,2.074
+ M0,6.5L0,13L20,13L20,0L0,0ZM12.227,2.09C12.836,2.184 13.367,2.43 13.82,2.828C14.117,3.09 14.328,3.355 14.496,3.684C14.656,3.996 14.719,4.215 14.758,4.586C14.863,5.582 14.887,6.637 14.824,7.637C14.793,8.117 14.75,8.555 14.719,8.707C14.617,9.211 14.324,9.715 13.91,10.102C13.434,10.547 12.879,10.816 12.25,10.918C12.141,10.934 11.953,10.934 8.523,10.934C5.113,10.934 4.91,10.934 4.801,10.918C4.125,10.813 3.523,10.5 3.035,10C2.664,9.613 2.426,9.188 2.332,8.723C2.305,8.602 2.277,8.355 2.25,8.004C2.16,6.875 2.172,5.785 2.281,4.66C2.305,4.418 2.32,4.316 2.359,4.164C2.57,3.355 3.281,2.605 4.16,2.262C4.422,2.16 4.652,2.105 4.969,2.074C4.988,2.074 6.613,2.074 8.574,2.074C11.371,2.074 12.16,2.078 12.227,2.09ZM12.227,2.09M5.078,2.586C4.848,2.613 4.637,2.66 4.461,2.723C3.902,2.926 3.418,3.305 3.094,3.785C3.008,3.914 2.883,4.176 2.836,4.316C2.797,4.434 2.758,4.609 2.738,4.754C2.688,5.141 2.895,5.469 3.262,5.582C3.367,5.613 3.551,5.613 3.66,5.582C3.961,5.488 4.156,5.246 4.191,4.938C4.199,4.832 4.223,4.758 4.258,4.684C4.395,4.414 4.699,4.168 5.023,4.074C5.105,4.051 5.141,4.047 5.328,4.039C5.512,4.035 5.555,4.027 5.613,4.012C5.863,3.934 6.031,3.758 6.113,3.512C6.145,3.402 6.145,3.219 6.113,3.109C6.031,2.859 5.863,2.691 5.613,2.609C5.551,2.59 5.523,2.586 5.328,2.586C5.211,2.582 5.098,2.586 5.078,2.586ZM5.078,2.586
+ M8.434,2.73C8.219,2.766 8.016,2.883 7.895,3.047C7.809,3.156 7.816,3.141 7.547,3.805C7.387,4.199 7.309,4.383 7.238,4.555C7.055,5.012 6.965,5.23 6.863,5.477C6.586,6.156 6.59,6.148 6.582,6.367C6.578,6.484 6.582,6.535 6.594,6.602C6.68,7.016 6.949,7.313 7.344,7.414L7.445,7.441L8.129,7.441C8.672,7.441 8.809,7.441 8.809,7.453C8.809,7.461 8.797,7.516 8.781,7.574C8.766,7.637 8.719,7.813 8.68,7.965C8.641,8.117 8.59,8.313 8.57,8.395C8.551,8.477 8.504,8.652 8.469,8.785C8.438,8.918 8.395,9.074 8.379,9.137C8.32,9.371 8.316,9.535 8.367,9.699C8.441,9.922 8.586,10.09 8.797,10.191C8.922,10.254 9.023,10.273 9.16,10.273C9.512,10.27 9.797,10.063 9.941,9.707C10.004,9.555 10.102,9.313 10.164,9.156C10.258,8.93 10.328,8.754 10.387,8.621C10.41,8.559 10.461,8.434 10.496,8.348C10.531,8.262 10.59,8.117 10.625,8.031C10.66,7.945 10.711,7.824 10.734,7.762C11.09,6.895 11.082,6.914 11.105,6.766C11.16,6.426 11.051,6.082 10.813,5.848C10.691,5.727 10.602,5.672 10.426,5.605C10.227,5.531 10.223,5.531 9.516,5.531C8.922,5.531 8.891,5.527 8.895,5.512C8.895,5.504 8.918,5.422 8.938,5.336C8.961,5.246 9.008,5.07 9.039,4.941C9.074,4.813 9.117,4.637 9.141,4.551C9.16,4.465 9.215,4.254 9.262,4.086C9.352,3.727 9.375,3.598 9.363,3.488C9.324,3.066 9.004,2.75 8.586,2.727C8.535,2.723 8.469,2.727 8.434,2.73ZM8.434,2.73
+ M4.594,0.09C3.738,0.16 2.895,0.488 2.156,1.039C1.227,1.73 0.586,2.672 0.379,3.648C0.344,3.828 0.324,3.961 0.301,4.266C0.18,5.754 0.18,7.258 0.301,8.746C0.34,9.223 0.387,9.465 0.508,9.813C1.02,11.301 2.555,12.574 4.172,12.863C4.543,12.93 4.188,12.926 8.559,12.926C12.332,12.926 12.523,12.926 12.672,12.906C13.512,12.809 14.297,12.48 15.016,11.934C15.219,11.781 15.387,11.633 15.582,11.43C15.938,11.066 16.203,10.699 16.422,10.273C16.465,10.188 16.5,10.117 16.504,10.109C16.504,10.102 16.574,10.09 16.68,10.074C17.336,9.984 17.43,9.969 17.637,9.898C18.574,9.586 19.324,8.699 19.617,7.547C19.711,7.184 19.742,6.91 19.742,6.504C19.746,6.102 19.715,5.848 19.625,5.484C19.348,4.352 18.633,3.477 17.715,3.129C17.5,3.051 17.367,3.02 16.887,2.957C16.699,2.93 16.535,2.906 16.523,2.906C16.508,2.902 16.484,2.863 16.43,2.758C16.117,2.129 15.613,1.531 15.016,1.074C14.246,0.492 13.395,0.156 12.512,0.09C12.348,0.078 4.746,0.078 4.594,0.09ZM12.559,1.684C13.262,1.789 13.906,2.133 14.445,2.68C14.871,3.117 15.133,3.594 15.215,4.074C15.23,4.18 15.262,4.547 15.285,4.898C15.355,6.055 15.352,7.117 15.273,8.27C15.254,8.602 15.223,8.902 15.203,8.996C15.109,9.457 14.855,9.906 14.453,10.32C13.91,10.879 13.242,11.23 12.547,11.328C12.422,11.344 12.211,11.344 8.57,11.344C5.465,11.344 4.703,11.344 4.621,11.332C3.926,11.246 3.25,10.902 2.703,10.355C2.395,10.043 2.176,9.727 2.035,9.383C1.941,9.148 1.91,8.996 1.879,8.637C1.766,7.258 1.766,5.754 1.879,4.375C1.91,4.016 1.941,3.863 2.035,3.629C2.176,3.285 2.395,2.965 2.703,2.656C3.297,2.066 4.008,1.723 4.762,1.668C4.785,1.664 6.523,1.664 8.625,1.664C12.207,1.664 12.453,1.668 12.559,1.684ZM17.031,4.578C17.57,4.684 18.035,5.344 18.145,6.172C18.184,6.438 18.164,6.793 18.105,7.07C17.953,7.75 17.547,8.285 17.086,8.41C17.016,8.43 16.859,8.453 16.852,8.445C16.852,8.445 16.855,8.344 16.863,8.219C16.938,7.113 16.938,5.895 16.863,4.797C16.855,4.676 16.852,4.57 16.852,4.563C16.852,4.547 16.902,4.551 17.031,4.578ZM17.031,4.578M5.074,2.586C4.289,2.664 3.543,3.113 3.094,3.785C2.961,3.984 2.828,4.289 2.781,4.512C2.727,4.773 2.719,4.949 2.762,5.086C2.836,5.328 3.012,5.504 3.262,5.582C3.367,5.613 3.555,5.613 3.66,5.582C3.961,5.488 4.156,5.246 4.191,4.934C4.195,4.879 4.207,4.813 4.219,4.785C4.313,4.492 4.637,4.199 4.984,4.086C5.027,4.074 5.074,4.059 5.09,4.055C5.105,4.051 5.211,4.047 5.328,4.039C5.508,4.031 5.559,4.027 5.613,4.012C5.859,3.934 6.035,3.758 6.109,3.512C6.145,3.402 6.145,3.219 6.109,3.109C6.035,2.859 5.863,2.688 5.613,2.609C5.555,2.59 5.523,2.586 5.328,2.586C5.211,2.582 5.098,2.586 5.074,2.586ZM5.074,2.586
+
+
+ M22.34,4.387C22.145,4.422 21.992,4.527 21.906,4.684C21.836,4.824 21.84,4.75 21.84,6.012C21.84,7.27 21.836,7.199 21.906,7.336C21.977,7.465 22.109,7.574 22.254,7.617C22.336,7.641 22.492,7.641 22.574,7.617C22.719,7.574 22.855,7.465 22.922,7.336C22.992,7.199 22.988,7.262 22.988,6.008C22.988,5.008 22.988,4.871 22.973,4.816C22.926,4.625 22.773,4.465 22.586,4.41C22.523,4.391 22.387,4.379 22.34,4.387ZM22.34,4.387M3.59,1.168C3.273,1.176 2.977,1.238 2.68,1.355C2.469,1.441 2.262,1.559 2.07,1.699C1.945,1.789 1.68,2.047 1.59,2.164C1.348,2.469 1.184,2.801 1.09,3.176C1.008,3.496 1.016,3.266 1.016,6C1.016,8.734 1.008,8.504 1.09,8.824C1.211,9.289 1.426,9.68 1.762,10.023C1.984,10.258 2.211,10.422 2.492,10.559C2.77,10.695 3.027,10.773 3.352,10.816C3.453,10.832 4.102,10.836 10.91,10.84C15.902,10.84 18.426,10.84 18.57,10.832C18.852,10.816 19.016,10.789 19.27,10.715C19.469,10.652 19.746,10.523 19.926,10.406C20.516,10.02 20.938,9.406 21.078,8.719C21.137,8.438 21.137,8.594 21.137,6C21.137,3.773 21.133,3.617 21.117,3.5C21.031,2.91 20.816,2.445 20.422,2.016C20.012,1.566 19.441,1.273 18.801,1.184C18.695,1.168 18.051,1.164 11.18,1.164C7.051,1.164 3.637,1.164 3.59,1.168ZM18.457,2.332C18.734,2.359 19,2.457 19.23,2.609C19.566,2.828 19.824,3.199 19.93,3.605C19.98,3.813 19.98,3.754 19.977,6.055C19.973,8.344 19.977,8.215 19.926,8.41C19.848,8.715 19.68,8.996 19.457,9.203C19.262,9.391 19.07,9.504 18.824,9.59C18.68,9.637 18.59,9.656 18.434,9.672C18.352,9.68 16.078,9.68 10.984,9.676C4.309,9.676 3.648,9.672 3.578,9.656C3.184,9.574 2.918,9.438 2.664,9.184C2.426,8.945 2.266,8.656 2.199,8.336C2.16,8.141 2.16,8.016 2.164,5.887C2.168,3.695 2.164,3.789 2.215,3.605C2.328,3.164 2.598,2.805 2.977,2.57C3.168,2.449 3.441,2.355 3.672,2.332C3.785,2.316 18.34,2.316 18.457,2.332ZM18.457,2.332
+ M22.34,4.387C22.145,4.422 21.992,4.527 21.906,4.684C21.836,4.824 21.84,4.75 21.84,6.012C21.84,7.27 21.836,7.199 21.906,7.336C21.977,7.465 22.109,7.574 22.254,7.617C22.336,7.641 22.492,7.641 22.574,7.617C22.719,7.574 22.855,7.465 22.922,7.336C22.992,7.199 22.988,7.262 22.988,6.008C22.988,5.008 22.988,4.871 22.973,4.816C22.926,4.625 22.773,4.465 22.586,4.41C22.523,4.391 22.387,4.379 22.34,4.387ZM22.34,4.387M3.59,1.168C3.273,1.176 2.977,1.238 2.68,1.355C2.469,1.441 2.262,1.559 2.07,1.699C1.945,1.789 1.68,2.047 1.59,2.164C1.348,2.469 1.184,2.801 1.09,3.176C1.008,3.496 1.016,3.266 1.016,6C1.016,8.734 1.008,8.504 1.09,8.824C1.211,9.289 1.426,9.68 1.762,10.023C1.984,10.258 2.211,10.422 2.492,10.559C2.77,10.695 3.027,10.773 3.352,10.816C3.453,10.832 4.102,10.836 10.91,10.84C15.902,10.84 18.426,10.84 18.57,10.832C18.852,10.816 19.016,10.789 19.27,10.715C19.469,10.652 19.746,10.523 19.926,10.406C20.516,10.02 20.938,9.406 21.078,8.719C21.137,8.438 21.137,8.594 21.137,6C21.137,3.773 21.133,3.617 21.117,3.5C21.031,2.91 20.816,2.445 20.422,2.016C20.012,1.566 19.441,1.273 18.801,1.184C18.695,1.168 18.051,1.164 11.18,1.164C7.051,1.164 3.637,1.164 3.59,1.168ZM18.457,2.332C18.734,2.359 19,2.457 19.23,2.609C19.566,2.828 19.824,3.199 19.93,3.605C19.98,3.813 19.98,3.754 19.977,6.055C19.973,8.344 19.977,8.215 19.926,8.41C19.848,8.715 19.68,8.996 19.457,9.203C19.262,9.391 19.07,9.504 18.824,9.59C18.68,9.637 18.59,9.656 18.434,9.672C18.352,9.68 16.078,9.68 10.984,9.676C4.309,9.676 3.648,9.672 3.578,9.656C3.184,9.574 2.918,9.438 2.664,9.184C2.426,8.945 2.266,8.656 2.199,8.336C2.16,8.141 2.16,8.016 2.164,5.887C2.168,3.695 2.164,3.789 2.215,3.605C2.328,3.164 2.598,2.805 2.977,2.57C3.168,2.449 3.441,2.355 3.672,2.332C3.785,2.316 18.34,2.316 18.457,2.332ZM18.457,2.332
+ M3.926,3.23C3.801,3.258 3.719,3.285 3.617,3.34C3.305,3.5 3.098,3.813 3.059,4.172C3.047,4.309 3.047,7.676 3.059,7.82C3.094,8.168 3.285,8.473 3.582,8.641C3.711,8.719 3.832,8.758 3.992,8.777C4.105,8.797 18.031,8.793 18.156,8.777C18.559,8.73 18.902,8.453 19.031,8.074C19.094,7.891 19.09,7.977 19.09,6C19.09,4.055 19.09,4.102 19.039,3.945C18.91,3.563 18.598,3.297 18.191,3.227C18.113,3.211 17.344,3.211 11.059,3.211C4.195,3.211 4.012,3.211 3.926,3.23ZM3.926,3.23
+ M12.277,1.238C12.258,1.258 12.094,1.445 11.914,1.656C11.734,1.863 11.477,2.164 11.34,2.32C11.203,2.477 10.898,2.828 10.66,3.105C10.422,3.379 10.117,3.73 9.984,3.887C9.578,4.355 9.406,4.551 9.09,4.922C8.922,5.113 8.746,5.316 8.699,5.375C8.648,5.43 8.609,5.477 8.609,5.484C8.609,5.488 8.664,5.488 8.727,5.484C8.895,5.477 10.559,5.469 10.559,5.473C10.559,5.477 10.516,5.535 10.461,5.602C10.406,5.672 10.305,5.801 10.23,5.895C10.156,5.988 10.023,6.156 9.934,6.266C9.785,6.453 9.664,6.609 9.359,6.988C9.297,7.07 9.203,7.188 9.156,7.25C9.105,7.313 8.992,7.453 8.91,7.559C8.824,7.668 8.703,7.816 8.645,7.895C8.582,7.973 8.48,8.098 8.422,8.176C8.359,8.254 8.309,8.316 8.309,8.32C8.309,8.328 8.816,8.328 9.441,8.328L10.57,8.328L10.539,8.41C10.523,8.457 10.379,8.898 10.215,9.395C10.051,9.891 9.883,10.402 9.84,10.531C9.797,10.664 9.762,10.777 9.762,10.785C9.762,10.793 9.773,10.785 9.793,10.762C9.809,10.742 9.836,10.711 9.852,10.695C9.867,10.68 9.973,10.555 10.09,10.422C10.207,10.285 10.406,10.059 10.531,9.914C11.066,9.301 11.258,9.078 11.305,9.023C11.379,8.941 11.949,8.285 12.23,7.965C12.359,7.816 12.609,7.527 12.789,7.32C12.969,7.113 13.223,6.82 13.355,6.672L13.598,6.395L12.715,6.391C12.23,6.387 11.836,6.383 11.832,6.383C11.832,6.379 12.25,5.797 12.387,5.613C12.414,5.574 12.469,5.5 12.512,5.441C12.594,5.324 12.754,5.105 12.852,4.973C12.887,4.926 12.988,4.777 13.086,4.648C13.176,4.52 13.27,4.391 13.289,4.363C13.324,4.316 13.359,4.27 13.566,3.984C13.68,3.824 13.719,3.773 13.793,3.672L13.844,3.605L12.836,3.602L11.828,3.602L11.836,3.563C11.84,3.543 11.855,3.465 11.871,3.391C11.887,3.316 11.969,2.922 12.051,2.516C12.133,2.109 12.211,1.738 12.219,1.691C12.23,1.645 12.246,1.563 12.254,1.516C12.266,1.465 12.281,1.375 12.297,1.316C12.309,1.258 12.32,1.207 12.316,1.203C12.316,1.203 12.297,1.219 12.277,1.238ZM12.277,1.238
+ M10.992,3.691C10.879,3.715 10.762,3.797 10.707,3.895C10.652,3.992 10.656,3.949 10.648,4.789L10.645,5.574L9.859,5.578C8.984,5.586 9.043,5.582 8.934,5.656C8.691,5.82 8.699,6.199 8.949,6.355C9.051,6.418 9.004,6.414 9.859,6.422L10.645,6.426L10.648,7.211C10.656,8.051 10.652,8.008 10.707,8.105C10.789,8.254 10.969,8.336 11.137,8.309C11.32,8.281 11.465,8.133 11.492,7.941C11.496,7.906 11.5,7.547 11.5,7.148L11.5,6.422L12.27,6.422C13.09,6.422 13.07,6.422 13.172,6.371C13.227,6.344 13.313,6.258 13.34,6.203C13.391,6.102 13.402,5.98 13.371,5.883C13.332,5.758 13.258,5.672 13.141,5.617L13.074,5.586L12.289,5.582L11.5,5.578L11.5,4.852C11.5,4.453 11.496,4.094 11.492,4.059C11.469,3.879 11.336,3.73 11.16,3.695C11.09,3.68 11.055,3.68 10.992,3.691ZM10.992,3.691
+
+
+ M21.352,6.5L21.352,8.402L21.457,8.398C21.836,8.375 22.234,8.172 22.496,7.867C22.762,7.563 22.914,7.223 22.98,6.785C22.996,6.68 22.996,6.34 22.98,6.227C22.922,5.805 22.773,5.461 22.512,5.148C22.25,4.836 21.844,4.625 21.465,4.602L21.352,4.598ZM21.352,6.5M3.023,0.945C2.578,0.973 2.07,1.117 1.684,1.332C0.723,1.863 0.102,2.82 0.012,3.914C-0.004,4.078 -0.004,8.922 0.012,9.086C0.094,10.086 0.613,10.969 1.449,11.523C1.762,11.73 2.074,11.871 2.457,11.965C2.586,11.996 2.652,12.008 2.879,12.043C3.004,12.063 17.047,12.063 17.172,12.043C17.395,12.008 17.465,11.996 17.594,11.965C17.984,11.867 18.32,11.719 18.637,11.504C19.449,10.941 19.953,10.078 20.039,9.086C20.055,8.926 20.055,4.082 20.039,3.914C19.957,2.918 19.43,2.02 18.602,1.473C18.188,1.203 17.773,1.051 17.227,0.965C17.121,0.945 16.668,0.945 10.094,0.945C6.234,0.945 3.055,0.945 3.023,0.945ZM16.754,2.125C17.023,2.152 17.289,2.23 17.535,2.352C18.281,2.711 18.781,3.438 18.859,4.266C18.867,4.336 18.871,5.125 18.871,6.5C18.871,8.77 18.871,8.746 18.82,8.984C18.727,9.441 18.504,9.855 18.176,10.184C18.051,10.313 17.957,10.387 17.801,10.488C17.512,10.68 17.191,10.801 16.836,10.855C16.73,10.875 16.363,10.875 10.02,10.875C3.676,10.875 3.309,10.875 3.203,10.855C2.844,10.801 2.527,10.68 2.23,10.48C2.008,10.336 1.852,10.191 1.684,9.984C1.484,9.734 1.324,9.41 1.242,9.094C1.172,8.801 1.176,8.992 1.176,6.496C1.176,4.379 1.176,4.25 1.191,4.141C1.32,3.348 1.797,2.695 2.504,2.348C2.742,2.234 3.02,2.152 3.273,2.125C3.371,2.113 4.609,2.113 10.004,2.109C15.73,2.109 16.633,2.113 16.754,2.125ZM16.754,2.125
+ M21.352,6.5L21.352,8.402L21.457,8.398C21.836,8.375 22.234,8.172 22.496,7.867C22.762,7.563 22.914,7.223 22.98,6.785C22.996,6.68 22.996,6.34 22.98,6.227C22.922,5.805 22.773,5.461 22.512,5.148C22.25,4.836 21.844,4.625 21.465,4.602L21.352,4.598ZM21.352,6.5M3.023,0.945C2.578,0.973 2.07,1.117 1.684,1.332C0.723,1.863 0.102,2.82 0.012,3.914C-0.004,4.078 -0.004,8.922 0.012,9.086C0.094,10.086 0.613,10.969 1.449,11.523C1.762,11.73 2.074,11.871 2.457,11.965C2.586,11.996 2.652,12.008 2.879,12.043C3.004,12.063 17.047,12.063 17.172,12.043C17.395,12.008 17.465,11.996 17.594,11.965C17.984,11.867 18.32,11.719 18.637,11.504C19.449,10.941 19.953,10.078 20.039,9.086C20.055,8.926 20.055,4.082 20.039,3.914C19.957,2.918 19.43,2.02 18.602,1.473C18.188,1.203 17.773,1.051 17.227,0.965C17.121,0.945 16.668,0.945 10.094,0.945C6.234,0.945 3.055,0.945 3.023,0.945ZM16.754,2.125C17.023,2.152 17.289,2.23 17.535,2.352C18.281,2.711 18.781,3.438 18.859,4.266C18.867,4.336 18.871,5.125 18.871,6.5C18.871,8.77 18.871,8.746 18.82,8.984C18.727,9.441 18.504,9.855 18.176,10.184C18.051,10.313 17.957,10.387 17.801,10.488C17.512,10.68 17.191,10.801 16.836,10.855C16.73,10.875 16.363,10.875 10.02,10.875C3.676,10.875 3.309,10.875 3.203,10.855C2.844,10.801 2.527,10.68 2.23,10.48C2.008,10.336 1.852,10.191 1.684,9.984C1.484,9.734 1.324,9.41 1.242,9.094C1.172,8.801 1.176,8.992 1.176,6.496C1.176,4.379 1.176,4.25 1.191,4.141C1.32,3.348 1.797,2.695 2.504,2.348C2.742,2.234 3.02,2.152 3.273,2.125C3.371,2.113 4.609,2.113 10.004,2.109C15.73,2.109 16.633,2.113 16.754,2.125ZM16.754,2.125
+ M3.727,3.289C3.426,3.313 3.172,3.41 2.922,3.602C2.609,3.836 2.406,4.203 2.359,4.605C2.352,4.676 2.352,5.238 2.352,6.559C2.355,8.625 2.352,8.465 2.426,8.688C2.605,9.227 3.059,9.605 3.629,9.691C3.699,9.703 4.891,9.703 10.035,9.703C15.961,9.703 16.359,9.703 16.449,9.688C17.055,9.578 17.508,9.16 17.652,8.582C17.668,8.527 17.684,8.441 17.688,8.387C17.703,8.254 17.703,4.719 17.688,4.594C17.648,4.254 17.492,3.941 17.254,3.711C17.023,3.488 16.777,3.363 16.453,3.301C16.371,3.285 15.961,3.285 10.102,3.285C6.652,3.281 3.785,3.285 3.727,3.289ZM3.727,3.289
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.902,9.68 2.973,9.695 3.113,9.695C3.262,9.695 3.328,9.68 3.453,9.613C3.648,9.516 3.785,9.355 3.852,9.141L3.875,9.066L3.875,3.914L3.852,3.84C3.727,3.445 3.355,3.219 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.945,9.699 2.883,9.695 3.879,9.695C4.879,9.695 4.816,9.699 4.984,9.613C5.18,9.516 5.313,9.355 5.383,9.141L5.406,9.066L5.406,3.914L5.383,3.84C5.289,3.555 5.07,3.348 4.789,3.297C4.676,3.273 3.074,3.273 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.949,9.703 2.785,9.695 4.645,9.695C6.508,9.695 6.34,9.703 6.516,9.613C6.711,9.516 6.844,9.355 6.91,9.141L6.934,9.066L6.934,3.914L6.91,3.84C6.84,3.605 6.68,3.43 6.465,3.336C6.324,3.277 6.387,3.281 4.637,3.281C3.316,3.281 3.023,3.285 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.953,9.703 2.688,9.695 5.41,9.695C8.133,9.695 7.871,9.703 8.047,9.613C8.238,9.516 8.375,9.355 8.441,9.141L8.465,9.066L8.465,3.914L8.441,3.84C8.367,3.605 8.211,3.43 7.992,3.336C7.852,3.277 7.992,3.281 5.402,3.281C3.434,3.281 3.023,3.285 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.953,9.703 2.59,9.695 6.176,9.695C9.762,9.695 9.398,9.703 9.574,9.613C9.77,9.516 9.902,9.355 9.973,9.141L9.996,9.066L9.996,3.914L9.973,3.84C9.898,3.605 9.742,3.43 9.523,3.336C9.379,3.277 9.598,3.281 6.164,3.281C3.547,3.281 3.023,3.285 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.824,9.641 2.895,9.668 2.93,9.676C2.992,9.695 3.215,9.695 6.941,9.695C10.66,9.695 10.891,9.695 10.949,9.68C10.984,9.668 11.055,9.641 11.105,9.613C11.301,9.516 11.434,9.355 11.504,9.141L11.523,9.066L11.523,3.914L11.504,3.84C11.43,3.605 11.27,3.43 11.055,3.336C10.91,3.277 11.203,3.281 6.93,3.281C3.66,3.281 3.023,3.285 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.824,9.641 2.895,9.668 2.93,9.676C2.992,9.695 3.25,9.695 7.703,9.695C12.152,9.695 12.418,9.695 12.48,9.68C12.516,9.668 12.586,9.641 12.637,9.613C12.828,9.516 12.965,9.355 13.031,9.141L13.055,9.066L13.055,3.914L13.031,3.84C12.941,3.555 12.719,3.348 12.438,3.297C12.367,3.281 11.863,3.281 7.695,3.281C3.777,3.281 3.023,3.285 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.824,9.641 2.895,9.668 2.93,9.676C2.992,9.695 3.285,9.695 8.469,9.695C13.645,9.695 13.949,9.695 14.012,9.68C14.047,9.668 14.117,9.641 14.164,9.613C14.359,9.516 14.492,9.355 14.563,9.141L14.586,9.066L14.586,3.914L14.563,3.84C14.473,3.555 14.25,3.348 13.969,3.297C13.895,3.281 13.316,3.281 8.461,3.281C3.891,3.281 3.023,3.285 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.824,9.641 2.895,9.668 2.93,9.676C2.992,9.695 3.32,9.695 9.234,9.695C15.137,9.695 15.48,9.695 15.539,9.68C15.574,9.668 15.645,9.641 15.695,9.613C15.891,9.516 16.023,9.355 16.094,9.141L16.113,9.066L16.113,3.914L16.094,3.84C16,3.555 15.777,3.348 15.5,3.297C15.426,3.281 14.773,3.281 9.227,3.281C4.004,3.281 3.023,3.285 2.965,3.297ZM2.965,3.297
+ M2.965,3.297C2.688,3.352 2.469,3.555 2.379,3.84L2.355,3.914L2.355,9.066L2.379,9.141C2.445,9.355 2.582,9.52 2.773,9.613C2.824,9.641 2.891,9.668 2.926,9.676C2.98,9.695 3.344,9.695 9.969,9.699C15.227,9.699 16.973,9.699 17.031,9.688C17.305,9.648 17.539,9.461 17.641,9.207C17.703,9.047 17.699,9.223 17.699,6.449L17.695,3.926L17.668,3.852C17.613,3.688 17.551,3.586 17.434,3.48C17.359,3.414 17.23,3.344 17.121,3.309L17.047,3.285L10.039,3.281C4.113,3.281 3.023,3.285 2.965,3.297ZM2.965,3.297
+ M14.113,5.551C13.902,5.582 13.676,5.711 13.539,5.871C13.246,6.223 13.234,6.703 13.508,7.066C13.641,7.238 13.824,7.359 14.051,7.414C14.152,7.441 14.375,7.441 14.469,7.414C14.707,7.352 14.879,7.242 15.012,7.066C15.379,6.582 15.211,5.895 14.664,5.633C14.613,5.609 14.535,5.582 14.492,5.57C14.402,5.547 14.207,5.535 14.113,5.551ZM14.113,5.551M5.637,5.551C5.426,5.582 5.195,5.711 5.059,5.871C4.77,6.223 4.754,6.703 5.027,7.066C5.16,7.238 5.344,7.359 5.57,7.414C5.672,7.441 5.895,7.441 5.988,7.414C6.227,7.352 6.398,7.242 6.531,7.066C6.898,6.582 6.73,5.895 6.184,5.633C6.133,5.609 6.059,5.582 6.016,5.57C5.922,5.547 5.727,5.535 5.637,5.551ZM5.637,5.551M9.02,6.23C8.93,6.258 8.879,6.289 8.816,6.355C8.707,6.465 8.664,6.598 8.676,6.77C8.699,7.129 8.82,7.426 9.039,7.652C9.391,8.023 9.945,8.156 10.441,7.988C10.988,7.809 11.34,7.313 11.34,6.723C11.34,6.641 11.336,6.598 11.32,6.547C11.277,6.414 11.164,6.289 11.031,6.238C10.961,6.211 10.828,6.203 10.75,6.219C10.523,6.27 10.371,6.477 10.371,6.734C10.371,6.801 10.348,6.879 10.316,6.934C10.23,7.078 10.004,7.133 9.836,7.051C9.707,6.988 9.656,6.895 9.641,6.691C9.637,6.617 9.625,6.555 9.609,6.516C9.563,6.387 9.438,6.273 9.305,6.23C9.219,6.203 9.098,6.203 9.02,6.23ZM9.02,6.23
+ M14.113,5.551C13.902,5.582 13.676,5.711 13.539,5.871C13.246,6.223 13.234,6.703 13.508,7.066C13.641,7.238 13.824,7.359 14.051,7.414C14.152,7.441 14.375,7.441 14.469,7.414C14.707,7.352 14.879,7.242 15.012,7.066C15.379,6.582 15.211,5.895 14.664,5.633C14.613,5.609 14.535,5.582 14.492,5.57C14.402,5.547 14.207,5.535 14.113,5.551ZM14.113,5.551M5.637,5.551C5.426,5.582 5.195,5.711 5.059,5.871C4.77,6.223 4.754,6.703 5.027,7.066C5.16,7.238 5.344,7.359 5.57,7.414C5.672,7.441 5.895,7.441 5.988,7.414C6.227,7.352 6.398,7.242 6.531,7.066C6.898,6.582 6.73,5.895 6.184,5.633C6.133,5.609 6.059,5.582 6.016,5.57C5.922,5.547 5.727,5.535 5.637,5.551ZM5.637,5.551M8.66,6.5C8.602,6.512 8.5,6.563 8.453,6.602C8.254,6.777 8.23,7.086 8.41,7.281C8.461,7.34 8.551,7.395 8.629,7.422C8.691,7.441 8.723,7.441 10.02,7.441C11.316,7.441 11.348,7.441 11.41,7.422C11.566,7.371 11.691,7.25 11.734,7.102C11.758,7.023 11.758,6.898 11.73,6.824C11.695,6.711 11.602,6.598 11.5,6.547C11.387,6.488 11.438,6.488 10.016,6.492C9.297,6.492 8.684,6.496 8.66,6.5ZM8.66,6.5
+ M14.113,5.551C13.902,5.582 13.676,5.711 13.539,5.871C13.246,6.223 13.234,6.703 13.508,7.066C13.641,7.238 13.824,7.359 14.051,7.414C14.152,7.441 14.375,7.441 14.469,7.414C14.707,7.352 14.879,7.242 15.012,7.066C15.379,6.582 15.211,5.895 14.664,5.633C14.613,5.609 14.535,5.582 14.492,5.57C14.402,5.547 14.207,5.535 14.113,5.551ZM14.113,5.551M5.637,5.551C5.426,5.582 5.195,5.711 5.059,5.871C4.77,6.223 4.754,6.703 5.027,7.066C5.16,7.238 5.344,7.359 5.57,7.414C5.672,7.441 5.895,7.441 5.988,7.414C6.227,7.352 6.398,7.242 6.531,7.066C6.898,6.582 6.73,5.895 6.184,5.633C6.133,5.609 6.059,5.582 6.016,5.57C5.922,5.547 5.727,5.535 5.637,5.551ZM5.637,5.551M9.875,6.008C9.699,6.031 9.555,6.078 9.406,6.152C9.039,6.34 8.789,6.691 8.723,7.121C8.676,7.402 8.711,7.57 8.844,7.703C8.879,7.738 8.93,7.777 8.957,7.793C9.141,7.891 9.367,7.859 9.52,7.719C9.617,7.621 9.656,7.527 9.672,7.359C9.684,7.203 9.703,7.141 9.781,7.066C9.855,6.992 9.941,6.965 10.066,6.973C10.273,6.984 10.398,7.125 10.398,7.34C10.398,7.578 10.547,7.777 10.766,7.836C10.934,7.879 11.117,7.824 11.234,7.699C11.344,7.582 11.375,7.48 11.367,7.289C11.34,6.707 11,6.246 10.473,6.07C10.324,6.023 10.246,6.008 10.07,6.004C9.98,6.004 9.891,6.004 9.875,6.008ZM9.875,6.008
+ M0,6.5L0,13L23,13L23,0L0,0ZM16.453,3.301C16.777,3.363 17.023,3.488 17.254,3.711C17.449,3.898 17.586,4.137 17.656,4.41C17.668,4.461 17.684,4.547 17.688,4.594C17.703,4.719 17.703,8.254 17.688,8.387C17.652,8.707 17.508,9.023 17.289,9.246C17.059,9.484 16.781,9.629 16.449,9.688C16.359,9.703 15.961,9.703 10.035,9.703C4.891,9.703 3.699,9.703 3.629,9.691C3.301,9.641 3.004,9.492 2.777,9.262C2.621,9.105 2.496,8.902 2.426,8.688C2.352,8.465 2.355,8.625 2.352,6.559C2.352,5.238 2.352,4.676 2.359,4.605C2.441,3.891 3.012,3.34 3.727,3.289C3.785,3.285 6.652,3.281 10.102,3.285C15.961,3.285 16.371,3.285 16.453,3.301ZM16.453,3.301
+ M14.113,5.551C13.902,5.582 13.676,5.711 13.539,5.871C13.246,6.223 13.234,6.703 13.508,7.066C13.641,7.238 13.824,7.359 14.051,7.414C14.152,7.441 14.375,7.441 14.469,7.414C14.707,7.352 14.879,7.242 15.012,7.066C15.379,6.582 15.211,5.895 14.664,5.633C14.613,5.609 14.535,5.582 14.492,5.57C14.402,5.547 14.207,5.535 14.113,5.551ZM14.113,5.551M5.637,5.551C5.426,5.582 5.195,5.711 5.059,5.871C4.77,6.223 4.754,6.703 5.027,7.066C5.16,7.238 5.344,7.359 5.57,7.414C5.672,7.441 5.895,7.441 5.988,7.414C6.227,7.352 6.398,7.242 6.531,7.066C6.898,6.582 6.73,5.895 6.184,5.633C6.133,5.609 6.059,5.582 6.016,5.57C5.922,5.547 5.727,5.535 5.637,5.551ZM5.637,5.551M9.02,6.23C8.93,6.258 8.879,6.289 8.816,6.355C8.707,6.465 8.664,6.598 8.676,6.77C8.699,7.129 8.82,7.426 9.039,7.652C9.391,8.023 9.945,8.156 10.441,7.988C10.988,7.809 11.34,7.313 11.34,6.723C11.34,6.641 11.336,6.598 11.32,6.547C11.277,6.414 11.164,6.289 11.031,6.238C10.961,6.211 10.828,6.203 10.75,6.219C10.523,6.27 10.371,6.477 10.371,6.734C10.371,6.801 10.348,6.879 10.316,6.934C10.23,7.078 10.004,7.133 9.836,7.051C9.707,6.988 9.656,6.895 9.641,6.691C9.637,6.617 9.625,6.555 9.609,6.516C9.563,6.387 9.438,6.273 9.305,6.23C9.219,6.203 9.098,6.203 9.02,6.23ZM9.02,6.23
+ M21.352,6.5L21.352,8.402L21.457,8.398C21.836,8.375 22.234,8.172 22.496,7.867C22.762,7.563 22.914,7.223 22.98,6.785C22.996,6.68 22.996,6.34 22.98,6.227C22.922,5.805 22.773,5.461 22.512,5.148C22.25,4.836 21.844,4.625 21.465,4.602L21.352,4.598ZM21.352,6.5M3.023,0.945C2.578,0.973 2.07,1.117 1.684,1.332C0.723,1.863 0.102,2.82 0.012,3.914C-0.004,4.078 -0.004,8.922 0.012,9.086C0.094,10.086 0.613,10.969 1.449,11.523C1.762,11.73 2.074,11.871 2.457,11.965C2.586,11.996 2.652,12.008 2.879,12.043C3.004,12.063 17.047,12.063 17.172,12.043C17.395,12.008 17.465,11.996 17.594,11.965C17.984,11.867 18.32,11.719 18.637,11.504C19.449,10.941 19.953,10.078 20.039,9.086C20.055,8.926 20.055,4.082 20.039,3.914C19.957,2.918 19.43,2.02 18.602,1.473C18.188,1.203 17.773,1.051 17.227,0.965C17.121,0.945 16.668,0.945 10.094,0.945C6.234,0.945 3.055,0.945 3.023,0.945ZM16.754,2.125C17.023,2.152 17.289,2.23 17.535,2.352C18.281,2.711 18.781,3.438 18.859,4.266C18.867,4.336 18.871,5.125 18.871,6.5C18.871,8.77 18.871,8.746 18.82,8.984C18.727,9.441 18.504,9.855 18.176,10.184C18.051,10.313 17.957,10.387 17.801,10.488C17.512,10.68 17.191,10.801 16.836,10.855C16.73,10.875 16.363,10.875 10.02,10.875C3.676,10.875 3.309,10.875 3.203,10.855C2.844,10.801 2.527,10.68 2.23,10.48C2.008,10.336 1.852,10.191 1.684,9.984C1.484,9.734 1.324,9.41 1.242,9.094C1.172,8.801 1.176,8.992 1.176,6.496C1.176,4.379 1.176,4.25 1.191,4.141C1.32,3.348 1.797,2.695 2.504,2.348C2.742,2.234 3.02,2.152 3.273,2.125C3.371,2.113 4.609,2.113 10.004,2.109C15.73,2.109 16.633,2.113 16.754,2.125ZM16.754,2.125
+
+
+ M2.641,1.352C2.246,1.391 1.84,1.555 1.531,1.801C1.121,2.125 0.871,2.551 0.77,3.09L0.746,3.203L0.742,5.922C0.738,7.816 0.742,8.672 0.75,8.75C0.82,9.488 1.262,10.125 1.922,10.445C2.152,10.559 2.402,10.625 2.66,10.648C2.82,10.664 14.949,10.664 15.109,10.648C15.953,10.57 16.656,10.016 16.922,9.219C17,8.98 17.031,8.781 17.031,8.5L17.031,8.34L17.672,8.336C18.246,8.336 18.324,8.332 18.391,8.316C18.621,8.262 18.813,8.156 18.969,8C19.133,7.836 19.234,7.645 19.285,7.41C19.305,7.328 19.305,7.242 19.305,6.004C19.305,4.766 19.305,4.68 19.285,4.602C19.195,4.176 18.906,3.855 18.5,3.727C18.332,3.672 18.293,3.672 17.641,3.672L17.031,3.672L17.027,3.441C17.02,3.102 16.973,2.875 16.855,2.605C16.551,1.902 15.887,1.422 15.109,1.352C14.965,1.336 2.781,1.34 2.641,1.352ZM14.883,2.488C15.395,2.594 15.77,2.965 15.879,3.469C15.895,3.551 15.895,3.672 15.895,6C15.895,8.328 15.895,8.449 15.879,8.531C15.773,9.012 15.426,9.375 14.953,9.492C14.922,9.504 14.848,9.516 14.789,9.52C14.645,9.535 3.125,9.535 2.98,9.52C2.438,9.465 2.008,9.074 1.895,8.531C1.875,8.449 1.875,8.328 1.875,6C1.875,3.672 1.875,3.551 1.895,3.469C2.012,2.918 2.449,2.527 3.004,2.477C3.027,2.477 5.695,2.473 8.934,2.477C13.504,2.477 14.84,2.48 14.883,2.488ZM17.906,4.82C18.023,4.867 18.117,4.961 18.16,5.066L18.184,5.125L18.184,6C18.184,6.82 18.184,6.879 18.168,6.926C18.141,7.004 18.07,7.09 18,7.137C17.898,7.203 17.863,7.211 17.414,7.211L17.031,7.211L17.031,4.801L17.449,4.801C17.813,4.805 17.871,4.809 17.906,4.82ZM17.906,4.82
+ M2.641,1.352C2.246,1.391 1.84,1.555 1.531,1.801C1.121,2.125 0.871,2.551 0.77,3.09L0.746,3.203L0.742,5.922C0.738,7.816 0.742,8.672 0.75,8.75C0.82,9.488 1.262,10.125 1.922,10.445C2.152,10.559 2.402,10.625 2.66,10.648C2.82,10.664 14.949,10.664 15.109,10.648C15.953,10.57 16.656,10.016 16.922,9.219C17,8.98 17.031,8.781 17.031,8.5L17.031,8.34L17.672,8.336C18.246,8.336 18.324,8.332 18.391,8.316C18.621,8.262 18.813,8.156 18.969,8C19.133,7.836 19.234,7.645 19.285,7.41C19.305,7.328 19.305,7.242 19.305,6.004C19.305,4.766 19.305,4.68 19.285,4.602C19.195,4.176 18.906,3.855 18.5,3.727C18.332,3.672 18.293,3.672 17.641,3.672L17.031,3.672L17.027,3.441C17.02,3.102 16.973,2.875 16.855,2.605C16.551,1.902 15.887,1.422 15.109,1.352C14.965,1.336 2.781,1.34 2.641,1.352ZM14.883,2.488C15.395,2.594 15.77,2.965 15.879,3.469C15.895,3.551 15.895,3.672 15.895,6C15.895,8.328 15.895,8.449 15.879,8.531C15.773,9.012 15.426,9.375 14.953,9.492C14.922,9.504 14.848,9.516 14.789,9.52C14.645,9.535 3.125,9.535 2.98,9.52C2.438,9.465 2.008,9.074 1.895,8.531C1.875,8.449 1.875,8.328 1.875,6C1.875,3.672 1.875,3.551 1.895,3.469C2.012,2.918 2.449,2.527 3.004,2.477C3.027,2.477 5.695,2.473 8.934,2.477C13.504,2.477 14.84,2.48 14.883,2.488ZM17.906,4.82C18.023,4.867 18.117,4.961 18.16,5.066L18.184,5.125L18.184,6C18.184,6.82 18.184,6.879 18.168,6.926C18.141,7.004 18.07,7.09 18,7.137C17.898,7.203 17.863,7.211 17.414,7.211L17.031,7.211L17.031,4.801L17.449,4.801C17.813,4.805 17.871,4.809 17.906,4.82ZM17.906,4.82
+ M12.391,6L12.391,8.398L13.359,8.398C14.438,8.398 14.414,8.402 14.527,8.336C14.648,8.262 14.734,8.141 14.762,8.012C14.766,7.977 14.77,7.258 14.77,5.992C14.77,3.848 14.773,3.977 14.715,3.859C14.68,3.789 14.578,3.691 14.512,3.656C14.402,3.602 14.406,3.602 13.359,3.602L12.391,3.602ZM12.391,6M3.371,3.613C3.203,3.652 3.063,3.789 3.016,3.969C3.004,4.016 3,4.281 3,5.992C3,7.258 3.004,7.977 3.012,8.012C3.035,8.141 3.121,8.262 3.242,8.336C3.355,8.402 3.332,8.398 4.41,8.398L5.379,8.398L5.379,3.602L4.406,3.602C3.629,3.602 3.422,3.605 3.371,3.613ZM3.371,3.613M6.129,6L6.129,8.398L8.512,8.398L8.512,3.602L6.129,3.602ZM6.129,6M9.262,6L9.262,8.398L11.641,8.398L11.641,3.602L9.262,3.602ZM9.262,6
+ M3.004,2.477C2.789,2.496 2.59,2.566 2.41,2.688C2.145,2.867 1.965,3.141 1.895,3.469C1.875,3.551 1.875,3.672 1.875,6C1.875,8.328 1.875,8.449 1.895,8.531C1.949,8.785 2.086,9.035 2.262,9.195C2.469,9.383 2.711,9.492 2.98,9.52C3.125,9.535 14.645,9.535 14.789,9.52C15.328,9.465 15.762,9.07 15.879,8.531C15.895,8.449 15.895,8.328 15.895,6C15.895,3.672 15.895,3.551 15.879,3.469C15.77,2.965 15.395,2.594 14.883,2.488C14.84,2.48 13.504,2.477 8.934,2.477C5.695,2.473 3.027,2.477 3.004,2.477ZM5.379,6L5.379,8.398L4.41,8.398C3.332,8.398 3.355,8.402 3.242,8.336C3.121,8.262 3.035,8.141 3.012,8.012C3.004,7.977 3,7.258 3,5.992C3,3.852 2.996,3.977 3.055,3.859C3.09,3.789 3.18,3.699 3.25,3.66C3.363,3.602 3.344,3.602 4.406,3.602L5.379,3.602ZM8.512,6L8.512,8.398L6.129,8.398L6.129,3.602L8.512,3.602ZM11.641,6L11.641,8.398L9.262,8.398L9.262,3.602L11.641,3.602ZM14.391,3.613C14.43,3.621 14.48,3.641 14.512,3.656C14.578,3.691 14.68,3.789 14.715,3.859C14.773,3.977 14.77,3.848 14.77,5.992C14.77,7.258 14.766,7.977 14.762,8.012C14.734,8.141 14.648,8.262 14.527,8.336C14.414,8.402 14.438,8.398 13.359,8.398L12.391,8.398L12.391,3.602L13.359,3.602C14.148,3.602 14.336,3.602 14.391,3.613ZM14.391,3.613
+ M8.066,4.191C8.113,4.242 8.281,4.426 8.441,4.605C8.523,4.695 8.656,4.844 8.738,4.934C8.816,5.023 8.93,5.145 8.984,5.203L9.086,5.313L8.512,5.309C8.195,5.305 7.832,5.297 7.703,5.297C7.578,5.293 7.223,5.285 6.91,5.281C6.598,5.273 6.176,5.266 5.965,5.266L5.586,5.258L5.609,5.285C5.625,5.301 5.672,5.352 5.715,5.398C5.895,5.59 6.285,6.012 6.289,6.02C6.289,6.027 6.168,6.035 5.586,6.055C5.355,6.063 5.047,6.074 4.898,6.078C4.754,6.086 4.496,6.094 4.328,6.102C4.16,6.105 3.969,6.113 3.898,6.117L3.773,6.125L3.773,6.152C3.773,6.184 3.777,6.184 3.898,6.219C4.863,6.512 7.773,7.383 8.27,7.527C8.328,7.547 8.379,7.559 8.387,7.559C8.395,7.559 8.406,7.547 8.41,7.535C8.422,7.512 8.406,7.492 7.902,6.988C7.617,6.703 7.391,6.469 7.398,6.469C7.406,6.469 7.52,6.484 7.648,6.5C7.895,6.531 8.527,6.609 9.629,6.75C10.633,6.879 11.375,6.969 11.387,6.969C11.398,6.969 11.398,6.969 11.387,6.953C11.383,6.941 11.129,6.676 10.824,6.363C10.52,6.051 10.262,5.781 10.246,5.766L10.223,5.734L10.289,5.738C10.535,5.75 13.063,5.871 13.57,5.895C13.738,5.902 13.906,5.91 13.945,5.91C14.059,5.91 14.059,5.898 13.941,5.789C13.891,5.738 13.676,5.531 13.465,5.328C12.883,4.773 12.527,4.43 12.395,4.301L12.273,4.184L11.586,4.176C11.207,4.172 10.254,4.168 9.465,4.164L8.035,4.156ZM8.066,4.191
+ M2.641,1.352C2.246,1.391 1.84,1.555 1.531,1.801C1.121,2.125 0.871,2.551 0.77,3.09L0.746,3.203L0.742,5.922C0.738,7.816 0.742,8.672 0.75,8.75C0.82,9.488 1.262,10.125 1.922,10.445C2.152,10.559 2.402,10.625 2.66,10.648C2.82,10.664 14.949,10.664 15.109,10.648C15.953,10.57 16.656,10.016 16.922,9.219C17,8.98 17.031,8.781 17.031,8.5L17.031,8.34L17.672,8.336C18.246,8.336 18.324,8.332 18.391,8.316C18.621,8.262 18.813,8.156 18.969,8C19.133,7.836 19.234,7.645 19.285,7.41C19.305,7.328 19.305,7.242 19.305,6.004C19.305,4.766 19.305,4.68 19.285,4.602C19.195,4.176 18.906,3.855 18.5,3.727C18.332,3.672 18.293,3.672 17.641,3.672L17.031,3.672L17.027,3.441C17.02,3.102 16.973,2.875 16.855,2.605C16.551,1.902 15.887,1.422 15.109,1.352C14.965,1.336 2.781,1.34 2.641,1.352ZM14.883,2.488C15.395,2.594 15.77,2.965 15.879,3.469C15.895,3.551 15.895,3.672 15.895,6C15.895,8.328 15.895,8.449 15.879,8.531C15.773,9.012 15.426,9.375 14.953,9.492C14.922,9.504 14.848,9.516 14.789,9.52C14.645,9.535 3.125,9.535 2.98,9.52C2.438,9.465 2.008,9.074 1.895,8.531C1.875,8.449 1.875,8.328 1.875,6C1.875,3.672 1.875,3.551 1.895,3.469C2.012,2.918 2.449,2.527 3.004,2.477C3.027,2.477 5.695,2.473 8.934,2.477C13.504,2.477 14.84,2.48 14.883,2.488ZM17.906,4.82C18.023,4.867 18.117,4.961 18.16,5.066L18.184,5.125L18.184,6C18.184,6.82 18.184,6.879 18.168,6.926C18.141,7.004 18.07,7.09 18,7.137C17.898,7.203 17.863,7.211 17.414,7.211L17.031,7.211L17.031,4.801L17.449,4.801C17.813,4.805 17.871,4.809 17.906,4.82ZM17.906,4.82
+
+
+ M20.418,4.176C20.414,4.18 20.41,5.004 20.41,6.008L20.41,7.828L20.445,7.828C20.594,7.828 20.809,7.785 20.961,7.719C21.711,7.398 22.141,6.473 21.953,5.578C21.809,4.863 21.301,4.313 20.684,4.195C20.582,4.176 20.43,4.164 20.418,4.176ZM20.418,4.176M2.578,0.988C2.113,1.004 1.676,1.133 1.273,1.379C0.848,1.637 0.504,2.012 0.273,2.473C0.148,2.727 0.07,2.98 0.023,3.289C0.008,3.398 0.004,3.551 0.004,6C0.004,8.867 0,8.641 0.066,8.941C0.125,9.199 0.254,9.523 0.395,9.75C0.551,10 0.824,10.305 1.039,10.465C1.254,10.629 1.516,10.77 1.75,10.855C2.012,10.945 2.254,10.996 2.543,11.012C2.785,11.023 16.613,11.023 16.855,11.012C17.254,10.988 17.586,10.902 17.934,10.727C18.211,10.59 18.398,10.453 18.621,10.23C19.035,9.813 19.281,9.32 19.379,8.711C19.395,8.602 19.395,8.449 19.395,6C19.395,3.133 19.398,3.359 19.336,3.059C19.191,2.422 18.781,1.816 18.246,1.453C17.871,1.199 17.508,1.063 17.031,0.996C16.965,0.988 15.242,0.984 9.805,0.984C5.879,0.984 2.629,0.984 2.578,0.988ZM16.734,1.93C17.176,1.973 17.59,2.172 17.898,2.477C18.063,2.645 18.172,2.797 18.27,3.004C18.387,3.242 18.445,3.469 18.461,3.738C18.473,3.949 18.473,8.051 18.461,8.262C18.449,8.445 18.422,8.594 18.367,8.754C18.203,9.254 17.852,9.656 17.387,9.887C17.199,9.977 17.047,10.023 16.836,10.059C16.73,10.074 16.371,10.074 9.699,10.074C3.027,10.074 2.672,10.074 2.566,10.059C2.352,10.023 2.199,9.977 2.016,9.887C1.547,9.656 1.195,9.254 1.031,8.754C0.977,8.594 0.949,8.445 0.941,8.262C0.926,8.051 0.93,3.949 0.941,3.738C0.957,3.453 1.02,3.227 1.148,2.969C1.406,2.457 1.875,2.094 2.441,1.965C2.504,1.953 2.598,1.938 2.645,1.934C2.781,1.918 16.598,1.918 16.734,1.93ZM16.734,1.93
+ M20.418,4.176C20.414,4.18 20.41,5.004 20.41,6.008L20.41,7.828L20.445,7.828C20.594,7.828 20.809,7.785 20.961,7.719C21.711,7.398 22.141,6.473 21.953,5.578C21.809,4.863 21.301,4.313 20.684,4.195C20.582,4.176 20.43,4.164 20.418,4.176ZM20.418,4.176M2.578,0.988C2.113,1.004 1.676,1.133 1.273,1.379C0.848,1.637 0.504,2.012 0.273,2.473C0.148,2.727 0.07,2.98 0.023,3.289C0.008,3.398 0.004,3.551 0.004,6C0.004,8.867 0,8.641 0.066,8.941C0.125,9.199 0.254,9.523 0.395,9.75C0.551,10 0.824,10.305 1.039,10.465C1.254,10.629 1.516,10.77 1.75,10.855C2.012,10.945 2.254,10.996 2.543,11.012C2.785,11.023 16.613,11.023 16.855,11.012C17.254,10.988 17.586,10.902 17.934,10.727C18.211,10.59 18.398,10.453 18.621,10.23C19.035,9.813 19.281,9.32 19.379,8.711C19.395,8.602 19.395,8.449 19.395,6C19.395,3.133 19.398,3.359 19.336,3.059C19.191,2.422 18.781,1.816 18.246,1.453C17.871,1.199 17.508,1.063 17.031,0.996C16.965,0.988 15.242,0.984 9.805,0.984C5.879,0.984 2.629,0.984 2.578,0.988ZM16.734,1.93C17.176,1.973 17.59,2.172 17.898,2.477C18.063,2.645 18.172,2.797 18.27,3.004C18.387,3.242 18.445,3.469 18.461,3.738C18.473,3.949 18.473,8.051 18.461,8.262C18.449,8.445 18.422,8.594 18.367,8.754C18.203,9.254 17.852,9.656 17.387,9.887C17.199,9.977 17.047,10.023 16.836,10.059C16.73,10.074 16.371,10.074 9.699,10.074C3.027,10.074 2.672,10.074 2.566,10.059C2.352,10.023 2.199,9.977 2.016,9.887C1.547,9.656 1.195,9.254 1.031,8.754C0.977,8.594 0.949,8.445 0.941,8.262C0.926,8.051 0.93,3.949 0.941,3.738C0.957,3.453 1.02,3.227 1.148,2.969C1.406,2.457 1.875,2.094 2.441,1.965C2.504,1.953 2.598,1.938 2.645,1.934C2.781,1.918 16.598,1.918 16.734,1.93ZM16.734,1.93
+ M3.035,2.859C2.523,2.898 2.086,3.242 1.93,3.734C1.867,3.93 1.871,3.844 1.871,6C1.871,7.652 1.871,7.98 1.887,8.066C1.941,8.477 2.211,8.844 2.586,9.02C2.738,9.094 2.859,9.125 3.059,9.141C3.219,9.152 16.184,9.152 16.344,9.141C16.539,9.125 16.66,9.094 16.816,9.02C17.188,8.844 17.457,8.477 17.516,8.066C17.535,7.914 17.535,4.086 17.516,3.934C17.469,3.617 17.293,3.313 17.039,3.121C16.883,3 16.723,2.926 16.512,2.879L16.414,2.855L9.773,2.855C6.121,2.852 3.09,2.855 3.035,2.859ZM3.035,2.859
+ M11.023,0.992C10.953,1 10.875,1.039 10.813,1.094C10.789,1.117 9.828,2.305 8.688,3.734C7.09,5.73 6.602,6.348 6.574,6.398C6.539,6.48 6.527,6.582 6.555,6.66C6.578,6.727 6.645,6.801 6.711,6.832L6.766,6.855L8.078,6.859C8.98,6.859 9.391,6.863 9.391,6.871C9.391,6.875 9.086,7.707 8.715,8.715C8.285,9.879 8.035,10.578 8.027,10.621C7.988,10.84 8.129,11.016 8.34,11.012C8.453,11.012 8.559,10.957 8.652,10.848C8.746,10.738 12.742,5.738 12.785,5.672C12.809,5.637 12.836,5.586 12.844,5.559C12.863,5.492 12.863,5.395 12.844,5.336C12.824,5.277 12.762,5.207 12.695,5.172L12.645,5.145L11.328,5.141C10.438,5.141 10.012,5.137 10.012,5.129C10.012,5.125 10.313,4.301 10.68,3.301C11.051,2.305 11.359,1.457 11.367,1.426C11.387,1.348 11.383,1.23 11.352,1.168C11.297,1.039 11.172,0.973 11.023,0.992ZM11.023,0.992
+ M20.95,11.54L21.21,11.54L21.21,11.77L20.95,11.77zM20.95,11.77L21.21,11.77L21.21,11.54L20.95,11.54z
+
+
+ M2.977,0.285C2.344,0.324 1.711,0.57 1.211,0.969C1.086,1.066 0.816,1.34 0.715,1.461C0.52,1.707 0.332,2.043 0.219,2.344C0.129,2.59 0.063,2.887 0.039,3.156C0.031,3.246 0.031,4.094 0.031,6.086L0.035,8.887L0.059,9.031C0.113,9.371 0.211,9.672 0.359,9.977C0.668,10.598 1.168,11.094 1.797,11.398C2.105,11.555 2.449,11.652 2.82,11.699C2.906,11.715 4.266,11.715 10.953,11.715C18.605,11.715 18.992,11.715 19.109,11.695C19.477,11.645 19.781,11.555 20.094,11.398C20.52,11.191 20.871,10.914 21.172,10.547C21.5,10.141 21.73,9.629 21.82,9.109C21.867,8.832 21.863,8.934 21.863,5.988C21.863,2.922 21.867,3.133 21.805,2.813C21.66,2.102 21.289,1.477 20.734,1.012C20.406,0.738 20,0.52 19.598,0.406C19.449,0.363 19.34,0.34 19.145,0.309L19.004,0.285L11.016,0.285C6.621,0.285 3.004,0.285 2.977,0.285ZM2.977,0.285M22.672,6.008L22.672,7.762L22.746,7.758C22.906,7.742 23.016,7.711 23.16,7.633C23.336,7.543 23.508,7.391 23.641,7.203C23.75,7.051 23.867,6.797 23.926,6.59C24.148,5.762 23.859,4.824 23.258,4.434C23.094,4.324 22.934,4.273 22.734,4.258L22.672,4.25ZM22.672,6.008
+ M20.95,11.54L21.21,11.54L21.21,11.77L20.95,11.77zM20.95,11.77L21.21,11.77L21.21,11.54L20.95,11.54z
+ M2.977,0.285C2.344,0.324 1.711,0.57 1.211,0.969C1.086,1.066 0.816,1.34 0.715,1.461C0.52,1.707 0.332,2.043 0.219,2.344C0.129,2.59 0.063,2.887 0.039,3.156C0.031,3.246 0.031,4.094 0.031,6.086L0.035,8.887L0.059,9.031C0.113,9.371 0.211,9.672 0.359,9.977C0.668,10.598 1.168,11.094 1.797,11.398C2.105,11.555 2.449,11.652 2.82,11.699C2.906,11.715 4.266,11.715 10.953,11.715C18.605,11.715 18.992,11.715 19.109,11.695C19.477,11.645 19.781,11.555 20.094,11.398C20.52,11.191 20.871,10.914 21.172,10.547C21.5,10.141 21.73,9.629 21.82,9.109C21.867,8.832 21.863,8.934 21.863,5.988C21.863,2.922 21.867,3.133 21.805,2.813C21.66,2.102 21.289,1.477 20.734,1.012C20.406,0.738 20,0.52 19.598,0.406C19.449,0.363 19.34,0.34 19.145,0.309L19.004,0.285L11.016,0.285C6.621,0.285 3.004,0.285 2.977,0.285ZM2.977,0.285M22.672,6.008L22.672,7.762L22.746,7.758C22.906,7.742 23.016,7.711 23.16,7.633C23.336,7.543 23.508,7.391 23.641,7.203C23.75,7.051 23.867,6.797 23.926,6.59C24.148,5.762 23.859,4.824 23.258,4.434C23.094,4.324 22.934,4.273 22.734,4.258L22.672,4.25ZM22.672,6.008
+ M0,6L0,12L24,12L24,9.066C23.996,7.313 23.992,6.172 23.988,6.23C23.965,6.488 23.891,6.75 23.77,6.984C23.621,7.277 23.406,7.508 23.16,7.633C23.016,7.711 22.906,7.742 22.746,7.758L22.672,7.762L22.672,4.25L22.734,4.258C23.047,4.281 23.313,4.422 23.531,4.676C23.781,4.961 23.934,5.324 23.984,5.762C23.996,5.848 23.996,5.324 24,2.934L24,0L0,0ZM19.145,0.309C19.527,0.371 19.781,0.445 20.086,0.594C20.977,1.023 21.609,1.84 21.805,2.813C21.867,3.133 21.863,2.922 21.863,5.988C21.863,8.934 21.867,8.832 21.82,9.109C21.707,9.785 21.359,10.422 20.855,10.883C20.359,11.332 19.789,11.602 19.109,11.695C18.992,11.715 18.605,11.715 10.953,11.715C4.266,11.715 2.906,11.715 2.82,11.699C2.07,11.605 1.434,11.289 0.918,10.766C0.684,10.523 0.512,10.277 0.359,9.977C0.211,9.672 0.113,9.371 0.059,9.031L0.035,8.887L0.031,6.086C0.031,4.094 0.031,3.246 0.039,3.156C0.063,2.887 0.129,2.59 0.219,2.344C0.332,2.043 0.52,1.707 0.715,1.461C0.816,1.34 1.086,1.066 1.211,0.969C1.711,0.57 2.344,0.324 2.977,0.285C3.004,0.285 6.621,0.285 11.016,0.285L19.004,0.285ZM19.145,0.309
+ M18.934,2.48C18.902,2.496 18.859,2.523 18.84,2.547C18.746,2.641 15.887,6.23 15.863,6.277C15.828,6.352 15.82,6.414 15.848,6.477C15.879,6.539 15.895,6.559 15.953,6.586L16.004,6.609L16.93,6.609C17.805,6.609 17.852,6.609 17.848,6.629C17.844,6.637 17.633,7.223 17.371,7.93C17.109,8.637 16.895,9.238 16.887,9.27C16.859,9.418 16.961,9.551 17.105,9.551C17.168,9.551 17.258,9.508 17.305,9.457C17.332,9.43 19.484,6.738 20.094,5.977C20.297,5.719 20.305,5.707 20.305,5.609C20.305,5.539 20.301,5.527 20.273,5.488C20.258,5.465 20.223,5.434 20.199,5.422L20.156,5.395L19.223,5.391C18.344,5.391 18.289,5.391 18.293,5.371C18.297,5.355 18.977,3.516 19.156,3.035C19.27,2.727 19.281,2.672 19.238,2.578C19.184,2.461 19.059,2.418 18.934,2.48ZM18.934,2.48
+ M20.95,11.54L21.21,11.54L21.21,11.77L20.95,11.77zM20.95,11.77L21.21,11.77L21.21,11.54L20.95,11.54z
+
+
+ M22.102,6L22.102,7.914L22.199,7.906C22.785,7.871 23.309,7.492 23.59,6.906C23.684,6.715 23.738,6.523 23.773,6.289C23.793,6.164 23.797,5.875 23.781,5.746C23.707,5.16 23.402,4.648 22.961,4.352C22.738,4.203 22.461,4.109 22.207,4.094L22.102,4.086ZM22.102,6M3.629,0.578C3.012,0.621 2.465,0.789 1.953,1.098C1.148,1.586 0.563,2.375 0.324,3.285C0.258,3.543 0.227,3.75 0.211,4.031C0.195,4.262 0.195,7.738 0.211,7.969C0.238,8.496 0.363,8.965 0.59,9.422C0.945,10.125 1.5,10.684 2.211,11.039C2.598,11.234 2.938,11.34 3.398,11.402L3.566,11.426L10.535,11.426C17.195,11.426 17.512,11.426 17.648,11.406C17.945,11.371 18.258,11.297 18.496,11.207C19.227,10.934 19.832,10.453 20.262,9.813C20.539,9.402 20.734,8.922 20.82,8.441C20.875,8.117 20.871,8.242 20.879,6.102C20.883,4.047 20.879,3.973 20.84,3.684C20.781,3.273 20.629,2.82 20.434,2.469C19.984,1.656 19.273,1.059 18.398,0.758C18.215,0.695 17.922,0.629 17.66,0.594C17.543,0.578 17.102,0.574 10.605,0.574C6.793,0.574 3.656,0.574 3.629,0.578ZM17.34,2.301C17.789,2.355 18.203,2.547 18.523,2.852C18.852,3.16 19.059,3.559 19.137,4.02C19.152,4.117 19.156,4.246 19.156,6C19.156,7.77 19.152,7.883 19.137,7.984C19.066,8.406 18.883,8.777 18.594,9.078C18.266,9.426 17.816,9.645 17.336,9.699C17.262,9.707 15.391,9.711 10.48,9.707L3.727,9.703L3.59,9.676C3.074,9.574 2.633,9.301 2.332,8.895C2.133,8.625 2.016,8.355 1.945,7.996C1.926,7.887 1.926,7.855 1.922,6.09C1.918,4.27 1.922,4.145 1.953,3.965C2.063,3.402 2.375,2.934 2.852,2.621C3.117,2.445 3.445,2.328 3.77,2.297C3.863,2.285 17.262,2.289 17.34,2.301ZM17.34,2.301
+ M20.95,11.54L21.21,11.54L21.21,11.77L20.95,11.77zM20.95,11.77L21.21,11.77L21.21,11.54L20.95,11.54z
+ M3.629,0.578C3.012,0.621 2.465,0.789 1.953,1.098C1.148,1.586 0.563,2.375 0.324,3.285C0.258,3.543 0.227,3.75 0.211,4.031C0.195,4.262 0.195,7.738 0.211,7.969C0.238,8.496 0.363,8.965 0.59,9.422C0.945,10.125 1.5,10.684 2.211,11.039C2.598,11.234 2.938,11.34 3.398,11.402L3.566,11.426L10.535,11.426C17.195,11.426 17.512,11.426 17.648,11.406C17.945,11.371 18.258,11.297 18.496,11.207C19.227,10.934 19.832,10.453 20.262,9.813C20.539,9.402 20.734,8.922 20.82,8.441C20.875,8.117 20.871,8.242 20.879,6.102C20.883,4.047 20.879,3.973 20.84,3.684C20.781,3.273 20.629,2.82 20.434,2.469C19.984,1.656 19.273,1.059 18.398,0.758C18.215,0.695 17.922,0.629 17.66,0.594C17.543,0.578 17.102,0.574 10.605,0.574C6.793,0.574 3.656,0.574 3.629,0.578ZM3.629,0.578
+ M0,6L0,12L24,12L24,0L0,0ZM17.66,0.594C18.129,0.656 18.5,0.77 18.863,0.953C19.258,1.152 19.555,1.371 19.852,1.676C20.449,2.297 20.805,3.094 20.871,3.977C20.879,4.078 20.879,4.73 20.879,6.102C20.871,8.242 20.875,8.117 20.82,8.441C20.645,9.43 20.035,10.328 19.184,10.867C18.719,11.16 18.219,11.336 17.648,11.406C17.512,11.426 17.195,11.426 10.535,11.426L3.566,11.426L3.398,11.402C2.938,11.34 2.598,11.234 2.211,11.039C1.641,10.754 1.188,10.355 0.836,9.84C0.512,9.359 0.309,8.828 0.234,8.262C0.203,8.023 0.199,7.781 0.199,6C0.199,4.219 0.203,3.977 0.234,3.738C0.379,2.645 1.016,1.668 1.953,1.098C2.465,0.789 3.012,0.621 3.629,0.578C3.656,0.574 6.793,0.574 10.605,0.574C17.102,0.574 17.543,0.578 17.66,0.594ZM17.66,0.594M3.77,2.297C2.98,2.379 2.316,2.895 2.043,3.637C1.98,3.809 1.945,3.973 1.93,4.168C1.922,4.258 1.922,4.848 1.922,6.09C1.926,7.855 1.926,7.887 1.945,7.996C1.977,8.145 2.004,8.254 2.043,8.363C2.293,9.047 2.863,9.531 3.59,9.676L3.727,9.703L10.48,9.707C15.391,9.711 17.262,9.707 17.336,9.699C17.816,9.645 18.266,9.426 18.594,9.078C18.883,8.777 19.066,8.406 19.137,7.984C19.152,7.883 19.156,7.77 19.156,6C19.156,4.246 19.152,4.117 19.137,4.02C19.059,3.559 18.852,3.16 18.523,2.852C18.203,2.547 17.789,2.355 17.34,2.301C17.262,2.289 3.863,2.285 3.77,2.297ZM3.77,2.297
+ M16.633,2.934C16.613,2.941 16.578,2.961 16.559,2.98C16.488,3.035 13.969,6.195 13.941,6.258C13.895,6.363 13.934,6.465 14.031,6.512C14.074,6.527 14.109,6.531 14.871,6.531C15.473,6.531 15.672,6.531 15.672,6.543C15.672,6.547 15.629,6.672 15.574,6.813C15.52,6.957 15.336,7.465 15.16,7.941C14.984,8.414 14.84,8.824 14.836,8.848C14.824,8.914 14.852,8.988 14.898,9.035C14.945,9.074 14.973,9.086 15.043,9.078C15.156,9.07 15.078,9.16 16.465,7.426C17.164,6.551 17.746,5.816 17.762,5.797C17.84,5.68 17.809,5.539 17.695,5.488C17.656,5.473 17.609,5.469 16.859,5.469C16.227,5.469 16.059,5.469 16.059,5.457C16.059,5.449 16.137,5.242 16.227,4.996C16.316,4.746 16.504,4.242 16.641,3.871C16.777,3.504 16.891,3.18 16.895,3.152C16.906,3.063 16.859,2.965 16.781,2.934C16.742,2.918 16.676,2.918 16.633,2.934ZM16.633,2.934
+ M15.762,4.004C15.734,4.012 15.691,4.027 15.672,4.039C15.617,4.066 15.547,4.148 15.512,4.215L15.484,4.273L15.48,4.945L15.48,5.621L14.848,5.621C14.133,5.621 14.117,5.621 14.023,5.688C13.797,5.84 13.797,6.16 14.02,6.313C14.117,6.379 14.082,6.375 14.813,6.379L15.477,6.383L15.484,7.039C15.488,7.547 15.492,7.707 15.504,7.742C15.535,7.84 15.609,7.926 15.703,7.973C15.891,8.059 16.117,7.977 16.207,7.785L16.234,7.727L16.238,7.051L16.242,6.379L16.867,6.379C17.215,6.379 17.52,6.375 17.555,6.371C17.637,6.355 17.695,6.324 17.762,6.258C17.828,6.191 17.859,6.117 17.867,6.02C17.879,5.891 17.809,5.758 17.695,5.684C17.598,5.621 17.578,5.621 16.875,5.621L16.242,5.621L16.238,4.961C16.23,4.238 16.23,4.25 16.164,4.156C16.078,4.027 15.906,3.965 15.762,4.004ZM15.762,4.004
+
+
+ M4.273,0.121C3.691,0.148 3.133,0.324 2.637,0.633C1.723,1.203 1.133,2.176 1.039,3.246C1.027,3.41 1.027,8.59 1.039,8.754C1.141,9.941 1.848,10.988 2.922,11.523C3.359,11.746 3.801,11.859 4.309,11.879C4.582,11.891 19.418,11.891 19.691,11.879C20.477,11.848 21.164,11.578 21.77,11.07C22.348,10.586 22.754,9.895 22.902,9.141C22.969,8.813 22.965,9.039 22.965,6C22.965,2.961 22.969,3.188 22.902,2.859C22.641,1.539 21.625,0.5 20.316,0.199C20.121,0.156 19.926,0.133 19.695,0.121C19.441,0.109 4.531,0.109 4.273,0.121ZM19.715,1.66C19.926,1.68 20.094,1.719 20.27,1.793C20.863,2.039 21.273,2.539 21.402,3.18L21.426,3.297L21.426,8.715L21.398,8.84C21.305,9.273 21.086,9.641 20.766,9.91C20.469,10.156 20.105,10.305 19.719,10.34C19.563,10.355 4.438,10.355 4.281,10.34C3.895,10.305 3.531,10.156 3.234,9.91C2.914,9.641 2.695,9.273 2.602,8.84L2.574,8.715L2.574,3.285L2.602,3.16C2.617,3.09 2.648,2.98 2.672,2.914C2.91,2.219 3.531,1.73 4.266,1.66C4.398,1.648 19.578,1.648 19.715,1.66ZM19.715,1.66
+ M13.281,2.879C13.285,4.25 13.281,4.137 13.359,4.297C13.453,4.488 13.633,4.633 13.84,4.688C13.93,4.711 14.168,4.711 14.262,4.688C14.469,4.633 14.645,4.488 14.742,4.297C14.82,4.133 14.813,4.242 14.816,2.871L14.82,1.648L13.277,1.648ZM13.281,2.879M17.383,3.902C17.387,6.039 17.387,6.156 17.402,6.215C17.469,6.43 17.605,6.594 17.797,6.684C17.914,6.742 18.008,6.762 18.156,6.762C18.516,6.762 18.785,6.559 18.898,6.203C18.914,6.16 18.914,5.926 18.918,3.902L18.922,1.648L17.379,1.648ZM17.383,3.902M5.102,3.391L5.105,5.137L5.129,5.211C5.215,5.488 5.426,5.68 5.703,5.734C5.824,5.762 6.02,5.754 6.125,5.715C6.25,5.672 6.324,5.625 6.426,5.527C6.496,5.453 6.523,5.418 6.559,5.352C6.641,5.176 6.633,5.363 6.637,3.398L6.641,1.648L5.102,1.648ZM5.102,3.391M9.203,3.902C9.203,5.926 9.207,6.16 9.223,6.203C9.309,6.484 9.5,6.672 9.766,6.742C9.867,6.766 10.051,6.77 10.16,6.746C10.418,6.688 10.633,6.488 10.711,6.23L10.734,6.156L10.738,3.902L10.738,1.648L9.199,1.648ZM9.203,3.902
+ M4.273,0.121C3.691,0.148 3.133,0.324 2.637,0.633C1.723,1.203 1.133,2.176 1.039,3.246C1.027,3.41 1.027,8.59 1.039,8.754C1.141,9.941 1.848,10.988 2.922,11.523C3.359,11.746 3.801,11.859 4.309,11.879C4.582,11.891 19.418,11.891 19.691,11.879C20.477,11.848 21.164,11.578 21.77,11.07C22.348,10.586 22.754,9.895 22.902,9.141C22.969,8.813 22.965,9.039 22.965,6C22.965,2.961 22.969,3.188 22.902,2.859C22.641,1.539 21.625,0.5 20.316,0.199C20.121,0.156 19.926,0.133 19.695,0.121C19.441,0.109 4.531,0.109 4.273,0.121ZM19.715,1.66C19.926,1.68 20.094,1.719 20.27,1.793C20.863,2.039 21.273,2.539 21.402,3.18L21.426,3.297L21.426,8.715L21.398,8.84C21.305,9.273 21.086,9.641 20.766,9.91C20.469,10.156 20.105,10.305 19.719,10.34C19.563,10.355 4.438,10.355 4.281,10.34C3.895,10.305 3.531,10.156 3.234,9.91C2.914,9.641 2.695,9.273 2.602,8.84L2.574,8.715L2.574,3.285L2.602,3.16C2.617,3.09 2.648,2.98 2.672,2.914C2.91,2.219 3.531,1.73 4.266,1.66C4.398,1.648 19.578,1.648 19.715,1.66ZM19.715,1.66
+ M4.266,1.66C3.848,1.699 3.461,1.875 3.152,2.164C2.875,2.426 2.688,2.766 2.602,3.16L2.574,3.285L2.574,8.715L2.602,8.84C2.695,9.273 2.914,9.641 3.234,9.91C3.531,10.156 3.895,10.305 4.281,10.34C4.438,10.355 19.563,10.355 19.719,10.34C20.105,10.305 20.469,10.156 20.766,9.91C21.086,9.641 21.305,9.273 21.398,8.84L21.426,8.715L21.426,3.297L21.402,3.18C21.273,2.539 20.863,2.039 20.27,1.793C20.094,1.719 19.926,1.68 19.715,1.66C19.578,1.648 4.398,1.648 4.266,1.66ZM4.266,1.66
+ M11.906,6.141C11.742,6.176 11.602,6.281 11.527,6.426C11.469,6.551 11.469,6.508 11.469,7.555C11.469,8.078 11.465,8.512 11.461,8.508C11.457,8.508 11.012,8.281 10.469,8.012C9.801,7.68 9.465,7.516 9.422,7.504C9.332,7.48 9.199,7.488 9.109,7.523C8.898,7.598 8.75,7.813 8.75,8.031C8.75,8.195 8.844,8.383 8.973,8.469C8.996,8.484 9.648,8.813 10.414,9.199C11.363,9.672 11.836,9.906 11.879,9.914C11.961,9.938 12.113,9.93 12.184,9.906C12.336,9.852 12.465,9.727 12.523,9.574L12.547,9.516L12.547,8.535C12.551,7.906 12.555,7.559 12.559,7.559C12.566,7.559 13.012,7.781 13.551,8.051C14.086,8.316 14.555,8.547 14.586,8.555C14.656,8.578 14.773,8.578 14.852,8.563C15.031,8.52 15.18,8.379 15.242,8.203C15.273,8.109 15.273,7.965 15.242,7.863C15.215,7.77 15.137,7.66 15.059,7.602C14.992,7.555 12.281,6.195 12.18,6.156C12.117,6.137 11.969,6.125 11.906,6.141ZM11.906,6.141
+ M11.906,6.141C11.742,6.176 11.602,6.281 11.527,6.426C11.469,6.551 11.469,6.508 11.469,7.555C11.469,8.078 11.465,8.512 11.461,8.508C11.457,8.508 11.012,8.281 10.469,8.012C9.801,7.68 9.465,7.516 9.422,7.504C9.332,7.48 9.199,7.488 9.109,7.523C8.898,7.598 8.75,7.813 8.75,8.031C8.75,8.195 8.844,8.383 8.973,8.469C8.996,8.484 9.648,8.813 10.414,9.199C11.363,9.672 11.836,9.906 11.879,9.914C11.961,9.938 12.113,9.93 12.184,9.906C12.336,9.852 12.465,9.727 12.523,9.574L12.547,9.516L12.547,8.535C12.551,7.906 12.555,7.559 12.559,7.559C12.566,7.559 13.012,7.781 13.551,8.051C14.086,8.316 14.555,8.547 14.586,8.555C14.656,8.578 14.773,8.578 14.852,8.563C15.031,8.52 15.18,8.379 15.242,8.203C15.273,8.109 15.273,7.965 15.242,7.863C15.215,7.77 15.137,7.66 15.059,7.602C14.992,7.555 12.281,6.195 12.18,6.156C12.117,6.137 11.969,6.125 11.906,6.141ZM11.906,6.141
+
+
+ M3.18,0.43C2.836,0.449 2.527,0.527 2.227,0.676C1.977,0.797 1.77,0.938 1.578,1.121C1.168,1.512 0.914,2.004 0.824,2.59C0.805,2.699 0.805,2.867 0.805,5.996C0.805,9.484 0.805,9.324 0.852,9.566C0.969,10.156 1.316,10.703 1.793,11.063C1.938,11.176 2.063,11.246 2.234,11.332C2.547,11.48 2.828,11.551 3.199,11.57C3.453,11.582 14.648,11.582 14.902,11.57C15.289,11.551 15.586,11.473 15.914,11.305C16.656,10.93 17.137,10.266 17.277,9.422C17.289,9.328 17.293,9.215 17.297,8.598L17.301,7.879L18.035,7.879C18.719,7.879 18.77,7.879 18.84,7.859C19.012,7.816 19.141,7.684 19.184,7.512C19.199,7.465 19.199,7.258 19.199,6C19.199,4.723 19.199,4.535 19.184,4.484C19.141,4.309 18.988,4.168 18.813,4.133C18.777,4.125 18.523,4.121 18.031,4.121L17.301,4.121L17.301,3.473C17.301,2.836 17.297,2.695 17.266,2.516C17.156,1.891 16.809,1.313 16.305,0.934C16.156,0.824 16.051,0.758 15.887,0.68C15.555,0.52 15.277,0.449 14.895,0.43C14.695,0.418 3.383,0.422 3.18,0.43ZM14.879,1.863C15.074,1.91 15.238,1.984 15.375,2.086C15.633,2.277 15.805,2.555 15.867,2.883C15.883,2.969 15.887,3.176 15.887,6C15.887,8.824 15.883,9.031 15.867,9.117C15.816,9.387 15.699,9.609 15.516,9.797C15.309,10 15.07,10.113 14.77,10.148C14.652,10.164 3.445,10.164 3.328,10.148C3.031,10.113 2.789,10 2.586,9.793C2.398,9.609 2.281,9.387 2.23,9.117C2.215,9.031 2.215,8.824 2.215,6C2.215,3.176 2.215,2.969 2.23,2.883C2.332,2.359 2.719,1.961 3.227,1.867C3.27,1.859 3.313,1.848 3.324,1.848C3.336,1.844 5.926,1.844 9.074,1.844C14.563,1.844 14.809,1.848 14.879,1.863ZM14.879,1.863
+ M3.18,0.43C2.836,0.449 2.527,0.527 2.227,0.676C1.977,0.797 1.77,0.938 1.578,1.121C1.168,1.512 0.914,2.004 0.824,2.59C0.805,2.699 0.805,2.867 0.805,5.996C0.805,9.484 0.805,9.324 0.852,9.566C0.969,10.156 1.316,10.703 1.793,11.063C1.938,11.176 2.063,11.246 2.234,11.332C2.547,11.48 2.828,11.551 3.199,11.57C3.453,11.582 14.648,11.582 14.902,11.57C15.289,11.551 15.586,11.473 15.914,11.305C16.656,10.93 17.137,10.266 17.277,9.422C17.289,9.328 17.293,9.215 17.297,8.598L17.301,7.879L18.035,7.879C18.719,7.879 18.77,7.879 18.84,7.859C19.012,7.816 19.141,7.684 19.184,7.512C19.199,7.465 19.199,7.258 19.199,6C19.199,4.723 19.199,4.535 19.184,4.484C19.141,4.309 18.988,4.168 18.813,4.133C18.777,4.125 18.523,4.121 18.031,4.121L17.301,4.121L17.301,3.473C17.301,2.836 17.297,2.695 17.266,2.516C17.156,1.891 16.809,1.313 16.305,0.934C16.156,0.824 16.051,0.758 15.887,0.68C15.555,0.52 15.277,0.449 14.895,0.43C14.695,0.418 3.383,0.422 3.18,0.43ZM14.879,1.863C15.074,1.91 15.238,1.984 15.375,2.086C15.633,2.277 15.805,2.555 15.867,2.883C15.883,2.969 15.887,3.176 15.887,6C15.887,8.824 15.883,9.031 15.867,9.117C15.816,9.387 15.699,9.609 15.516,9.797C15.309,10 15.07,10.113 14.77,10.148C14.652,10.164 3.445,10.164 3.328,10.148C3.031,10.113 2.789,10 2.586,9.793C2.398,9.609 2.281,9.387 2.23,9.117C2.215,9.031 2.215,8.824 2.215,6C2.215,3.176 2.215,2.969 2.23,2.883C2.332,2.359 2.719,1.961 3.227,1.867C3.27,1.859 3.313,1.848 3.324,1.848C3.336,1.844 5.926,1.844 9.074,1.844C14.563,1.844 14.809,1.848 14.879,1.863ZM14.879,1.863
+ M4.379,3.262C4.215,3.273 4.07,3.336 3.934,3.441C3.805,3.547 3.707,3.691 3.656,3.867L3.637,3.945L3.637,6C3.637,7.965 3.637,8.059 3.652,8.121C3.719,8.344 3.848,8.516 4.035,8.629C4.145,8.691 4.254,8.73 4.387,8.738C4.52,8.754 13.621,8.754 13.754,8.738C13.887,8.73 13.992,8.691 14.105,8.629C14.289,8.52 14.422,8.348 14.48,8.133L14.504,8.055L14.504,3.945L14.48,3.867C14.434,3.691 14.336,3.547 14.207,3.445C14.059,3.328 13.934,3.277 13.75,3.262C13.613,3.246 4.512,3.25 4.379,3.262ZM4.379,3.262
+ M8.801,2.09C8.672,2.129 8.551,2.207 8.465,2.313C8.434,2.352 8.191,2.816 7.578,4.043C7.117,4.965 6.727,5.758 6.711,5.797C6.688,5.867 6.684,5.891 6.684,6C6.684,6.109 6.688,6.133 6.715,6.207C6.758,6.34 6.84,6.449 6.945,6.523C7.023,6.578 7.09,6.613 7.172,6.637C7.23,6.652 7.297,6.656 8.391,6.656L9.551,6.66L8.961,7.84C8.637,8.488 8.359,9.047 8.348,9.082C8.328,9.133 8.324,9.168 8.324,9.27C8.324,9.383 8.328,9.402 8.355,9.484C8.418,9.68 8.559,9.824 8.758,9.898C8.848,9.93 9.031,9.941 9.129,9.914C9.266,9.883 9.406,9.789 9.492,9.68C9.543,9.613 11.207,6.301 11.242,6.195C11.273,6.094 11.273,5.906 11.242,5.805C11.16,5.559 10.953,5.387 10.695,5.352C10.645,5.344 10.246,5.34 9.508,5.34L8.398,5.34L8.988,4.16C9.313,3.512 9.59,2.953 9.602,2.918C9.629,2.828 9.637,2.688 9.617,2.59C9.563,2.348 9.387,2.156 9.148,2.09C9.055,2.063 8.895,2.063 8.801,2.09ZM8.801,2.09
+ M8.973,4.133C8.887,4.16 8.813,4.234 8.777,4.32C8.762,4.367 8.762,4.406 8.762,5.031L8.762,5.691L8.102,5.691C7.465,5.691 7.438,5.691 7.387,5.711C7.273,5.754 7.191,5.875 7.191,6C7.191,6.129 7.277,6.254 7.402,6.297C7.438,6.309 7.547,6.309 8.102,6.309L8.762,6.309L8.762,6.969C8.762,7.605 8.762,7.633 8.781,7.684C8.805,7.746 8.871,7.82 8.938,7.852C9.004,7.887 9.137,7.887 9.203,7.852C9.27,7.82 9.336,7.746 9.359,7.684C9.379,7.633 9.379,7.605 9.379,6.969L9.379,6.309L10.039,6.309C10.762,6.309 10.738,6.313 10.824,6.25C10.875,6.215 10.922,6.145 10.941,6.078C10.98,5.934 10.891,5.762 10.754,5.711C10.699,5.691 10.676,5.691 10.039,5.691L9.379,5.691L9.379,5.031C9.379,4.395 9.379,4.367 9.359,4.316C9.336,4.254 9.27,4.18 9.203,4.148C9.145,4.121 9.035,4.113 8.973,4.133ZM8.973,4.133
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
new file mode 100644
index 000000000..475f6a632
--- /dev/null
+++ b/app/src/main/res/values/colors.xml
@@ -0,0 +1,85 @@
+
+
+ #00897B
+ #006B5F
+ #FFFFFF
+ #74F8E4
+ #00201C
+ #4A635E
+ #FFFFFF
+ #CCE8E2
+ #06201C
+ #456179
+ #FFFFFF
+ #CBE6FF
+ #001E31
+ #BA1A1A
+ #FFDAD6
+ #FFFFFF
+ #410002
+ #FAFDFB
+ #191C1B
+ #6F7976
+ #EFF1EF
+ #2D3130
+ #54DBC8
+ #000000
+ #006B5F
+ #BEC9C5
+ #000000
+ #F7FAF8
+ #191C1B
+ #DAE5E1
+ #3F4946
+ #54DBC8
+ #003731
+ #005048
+ #74F8E4
+ #B1CCC6
+ #1C3531
+ #334B47
+ #CCE8E2
+ #ADCAE5
+ #143349
+ #2D4A60
+ #CBE6FF
+ #FFB4AB
+ #93000A
+ #690005
+ #FFDAD6
+ #191C1B
+ #E0E3E1
+ #899390
+ #191C1B
+ #E0E3E1
+ #006B5F
+ #000000
+ #54DBC8
+ #3F4946
+ #000000
+ #101413
+ #C4C7C5
+ #3F4946
+ #BEC9C5
+
+ ?backgroundColor
+
+ #DA000E
+ #008753
+ #00000000
+
+ #5f6368
+ #66000000
+ #5C5C5C
+
+ @android:color/system_neutral1_900
+
+ #ff000000
+
+ @android:color/system_neutral2_50
+ @color/color_container_overlay_light
+
+ #FFFFFF
+ #000000
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/config.xml b/app/src/main/res/values/config.xml
new file mode 100644
index 000000000..3abf8baf7
--- /dev/null
+++ b/app/src/main/res/values/config.xml
@@ -0,0 +1,8 @@
+
+
+
+ 2eaba923f653cc4b4b1b1b5849349db6
+ c071025e890429c585e4df3aeeae0640
+ bf2e711833265643fa9749dfbc9c2d54
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 000000000..033cab045
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,54 @@
+
+
+
+ 24dp
+ 16dp
+
+
+ 16dp
+
+ 412dp
+ 300dp
+
+
+ 50dp
+ 12dp
+ 24dp
+
+ 14dp
+ 16dp
+ 24dp
+
+ 72dp
+
+ 61dp
+ 10dp
+ 6dp
+
+ 24dp
+ 24dp
+ 22dp
+
+ 56dp
+
+ 15dip
+ 6dip
+ 6dip
+ 6dip
+
+
+ 5dp
+ 5dp
+ 544dp
+
+
+ 32dp
+
+ 8dp
+ 18dp
+ 8dp
+
+ 16dp
+ 20dp
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml
new file mode 100644
index 000000000..89b9dd310
--- /dev/null
+++ b/app/src/main/res/values/ic_launcher_background.xml
@@ -0,0 +1,4 @@
+
+
+ #2F3B49
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 000000000..2840ad775
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,772 @@
+
+ Oxygen Customizer
+
+
+ Oxygen Customizer
+
+
+ Default
+ Learn more
+ Settings
+ Rename file to something simpler
+ Applied
+ Selected: %s
+ Selected: %s%s
+ This section requires SystemUI restart\nTap on menu to restart.
+
+
+ Select
+ Battery Charging
+ Battery Discharging
+ Battery Full
+ Battery Level
+ %d%%
+ Seconds
+ Milliseconds
+ Steps
+ Accent 1
+ Accent 2
+ Accent 3
+ Text 1
+ Text 2
+
+
+ Search…
+ Clear
+ History entry
+ More
+ Clear history
+ No results
+
+
+ Restart Scopes
+ Restart scoped processes
+ Restart only this page scope
+ Are you sure you want to restart all scoped processes except the system framework?\nUse this if the module isn\'t working!\nMake sure all the relevant scopes are checked!
+
+
+ Customizations
+ Mods
+ Hooks
+ Settings
+
+
+ Mods
+ Statusbar
+ Launcher
+ Quick Settings
+ Quick Settings Header
+ Sound
+ Miscellaneous
+ Package Manager
+
+
+ On
+ Off
+ Accent Color
+ Custom Color
+ Battery info…
+
+
+ Statusbar options
+ Double tap to sleep
+ Brightness control
+ Adjust brightness by sliding across the status bar
+ Battery Bar Settings
+ Battery Icon
+ Statusbar Icons
+
+
+ Notifications
+
+ \u221E
+ Statusbar Notifications
+ Use app icon for notifications
+ Show notification count
+ Notifications Prefs
+ Remove charging complete notification
+ Remove dev mode notification
+ Remove flashlight notification
+ Remove low battery notification
+
+
+
+ Clock & date
+ Customize clock & date
+ Clock seconds
+ Display seconds next to clock in status bar
+ Clock style
+ Right
+ Left
+ Center
+ Hidden
+ Auto hide
+ Hide clock if launcher is visible
+ Hide clock at regular interval
+ Hide duration
+ Number of seconds to hide clock
+ Show duration
+ Number of seconds to wait before hiding clock
+ AM/PM style
+ Normal
+ Small
+ Hidden
+ Date
+ Hidden
+ Small
+ Normal
+ Date format
+ Date style
+ Normal
+ Lowercase
+ Uppercase
+ Custom java format
+ Must be in DateFormat eg. MM/dd/yy
+ Enter string
+ Date position
+ Right of time
+ Left of time
+ Clock font size
+ Clock font style
+ Clock custom color
+ Custom clock color
+ Clock color
+ Background Chip
+ Background Chip Style
+
+
+ Status bar padding
+ Top padding
+ Status bar Left and Right Padding
+ Setting the values to min/max is equivalent to device Default
+ Left padding
+ Right padding
+
+
+ Enable Battery Bar
+ Only during charging
+ At bottom of Status bar
+ Make it colorful
+ Bar opacity
+ Center Aligned
+ Bar thickness
+ Indicate charging
+ Indicate Power Save
+ Indicate fast charging
+ Warning level range
+ Set both to 0 to disable level-based colors
+ Critical level color
+ Warning level color
+ Charging color
+ Power Save Color
+ Fast charging color
+ Shade colors between this range
+ Colored battery percentage while charging
+
+
+ Customize Battery Icon
+ Battery Icon Style
+ Custom Charging Icon
+ Change charging icon to custom icon
+ Battery Icon Preferences
+ Battery Width
+ Battery Height
+ Battery Margin
+ Hide Battery
+ Keep only charging icon and percentage
+ Custom Charging Icon
+ Change charging icon to custom icon
+ Charging Icon Preferences
+ Charging Icon Style
+ Charging Icon Margin Left
+ Charging Icon Margin Right
+ Charging Icon Size
+ Perimeter Alpha
+ Make battery perimeter semi transparent
+ Fill Alpha
+ Make battery fill semi transparent
+ Rainbow Color
+ Show different color based on battery level
+ Blend Color
+ Blend battery color with custom color
+ Fill Color
+ Fill battery with custom color
+ Fill Gradient Color
+ Fill battery with gradient color
+ Charging Fill Color
+ Change color of charging battery
+ Fast Charging Fill Color
+ Change color of fast charging battery
+ Powersave Fill Color
+ Change color of powersave battery
+ Powersave Indicator Color
+ Change color of powersave indicator
+ Battery icon margins
+ Custom Margins
+ Set custom margins for battery icon
+ Battery Margin Left
+ Battery Margin Right
+ Battery Margin Top
+ Battery Margin Bottom
+ Reverse Layout
+ Show percentage on the opposite side
+ Rotate Layout
+ Rotate battery layout 180 degrees
+ Hide Percentage
+ Hide battery percentage text
+ Inside Percentage
+ Move percentage to inside battery icon
+ Battery Icon Colors
+
+
+ Default Battery Settings
+ Customize Percentage Size
+ Percentage Size
+
+
+ Default
+ Landscape R Default
+ Landscape L Default
+ Landscape R Custom
+ Landscape L Custom
+ Portrait Capsule
+ Portrait Lorn
+ Portrait Mx
+ Portrait Airoo
+ Landscape R Style A
+ Landscape L Style A
+ Landscape R Style B
+ Landscape L Style B
+ Landscape iOS 15
+ Landscape iOS 16
+ Portrait Origami
+ Landscape Smiley
+ Landscape MIUI Pill
+ Landscape L ColorOS
+ Landscape R ColorOS
+ Landscape Battery A
+ Landscape Battery B
+ Landscape Battery C
+ Landscape Battery D
+ Landscape Battery E
+ Landscape Battery F
+ Landscape Battery G
+ Landscape Battery H
+ Landscape Battery I
+ Landscape Battery J
+ Landscape Battery K
+ Landscape Battery L
+ Landscape Battery M
+ Landscape Battery N
+ Landscape Battery O
+ Circle Battery
+ Dotted Circle Battery
+
+
+ Hide Bluetooth icon
+ Hide Bluetooth icon when not connected.
+
+
+ Quick Pulldown
+ Quick Pulldown Length
+ Quick Pulldown Side
+ Left
+ Right
+ Quick Collapse
+
+
+ Quick Settings Tiles
+ Quick settings tile count settings
+ Customize Quick Settings Tiles
+ Quick QS Tiles
+ In portrait orientation
+ Quick Settings Rows
+ Quick Settings Columns
+ In landscape orientation
+ Quick Settings Rows (Landscape)
+ Quick Settings Columns (Landscape)
+
+ QS Customization
+ Quick Settings Tiles Background
+ Customize active tile color
+ QS Active Color
+ Customize inactive tile color
+ QS Inactive Color
+ Customize disabled tile color
+ QS Disabled Color
+ QS Labels
+ Hide QS Labels
+ Customize QS Text Color
+ QS Text Color
+ Customize Title Color
+ QS Title Color
+ Customize Subtitle Color
+ QS Subtitle Color
+ Brightness Slider
+ Customize Brightness Slider
+ Brightness Slider Color Mode
+ Customize background color
+
+
+ Header image
+ Select QS background header image
+ QS header image customization
+ Enable QS header image customization
+
+ Header provider
+ Header image collection
+ Browse installed headers
+ Browse all available header collections
+ Static image
+ Image collection
+ Custom image
+
+ Creator\u003a
+ Loading wallpaper directory failed
+ Downloading header
+ Downloading header failed
+ Header image set
+ Online
+ Local
+ No network connectivity
+
+ Show on landscape
+ Display QS header image in landscape mode
+ Tint
+ No tint
+ Accent color
+ Primary color
+ Primary color inverse
+ Custom color
+ Custom tint color
+ Tint intensity
+ Height
+ Opacity
+ Bottom Fade
+ Side padding
+ Top padding
+ Select local image
+ Select image from storage
+ Zoom To Fit
+ Image is stretched to fit by default
+
+
+ QS Header Clock
+ Enabling and disabling Custom Clock needs SystemUI restart.\nTap on menu to restart.
+ Custom Header Clock
+ Add a custom clock on QS panel
+ Clock Style
+ Pick a style of your choice.
+ Use Custom User Name
+ User Name
+ Use Custom User Image
+ User Image
+ Click to pick an image.
+ Stock Clock Preferences
+ Red One behavior
+ Disable Red One
+ Color for 1 in Clock
+ Enable custom color for time
+ Time Custom Color
+ Hide date
+ Enable custom color for date
+ Date Custom Color
+ Hide carrier label
+ Clock Background chip
+ Clock background chip style
+ Background chip color mode
+ Custom Color background chip
+ Date background chip
+ Date background chip style
+ Font
+ Use Custom font
+ Pick Font
+ Pick your font.\nDo not select file from Recent.
+ Custom Clock Preferences
+ Custom Color Clock
+ Custom color instead of primary color
+ Text Scaling
+
+
+ Hour color mode
+ Default
+ None
+ Color with clock time
+ Only first digit
+ Only character "1"
+ Custom Color hour
+
+ Time color mode
+ Default
+ Accent Color
+ Custom Color
+ Custom Color time
+
+ Separator color mode
+ Accent Color
+ Custom Color
+ Custom Color separator
+
+ Clock Margins
+ Top margin
+ Left margin
+
+
+ Filled
+ Outlined
+ Color Properties
+ Use Accent Color
+ Use gradient
+ Use Accent
+ Chip Color
+ Stroke Color
+ First Color Gradient
+ Second Color Gradient
+ Chip Color
+ Stroke Props
+ Stroke Width
+ Corners Properties
+ Round Corners
+ Top Left Radius
+ Top Right Radius
+ Bottom Left Radius
+ Bottom Right Radius
+
+
+ Launcher Options requires Launcher Restart.\nTap on menu to restart.
+ Folder layout
+ Edit layout
+ Columns
+ Rows
+ Update preview
+ Drawer
+ Edit columns
+ Columns
+ Recents
+ Open App Details
+ Tap on the app icon to open app details in Settings.
+
+
+
+ Navigation Bar
+ Gesture navigation
+ Three-button navigation
+
+
+ Configure Back gesture
+ Left side of the screen
+ Right side of the screen
+ Gesture height
+ Enable in Landscape too
+ Override Hold back gesture
+ Override back mode
+ Both command for left and right side
+ Choose command for each side
+ Left side command
+ Right side command
+ Hold Back Command
+ Switch to previous app
+ Clear all recents
+ Kill active app
+ Make Screenshot
+ Open quick settings
+ Open power menu
+ Open notification panel
+ Screen Off
+
+
+ Buttons
+ Power Button
+ Customize power button
+ Volume button torch
+ Long press volume buttons to toggle torch
+ Enable timeout
+ Timeout
+ Use proximity sensor
+ Volume Buttons
+ Volume button music controls
+ Control music playback with volume buttons
+
+
+
+ Lockscreen
+ Scramble PIN
+ Hide power menu
+ Hide power menu on secure lockscreen
+ Hide SOS button
+ Hide bottom SOS button in lockscreen
+ Fingerprint Icon
+ Remove Fingerprint Icon
+ Custom Fingerprint Icon
+ Fingerprint Icons Presets
+ Pick Custom Icon
+ Pick your custom icon.\nThe recommended image resolution is around 216 x 216.
+ Fingerprint Icon Scaling
+
+
+ Lockscreen Clock
+ Custom Lockscreen Clock
+ Clock Style
+ Pick a style of your choice.
+ Font
+ Use Custom font
+ Pick Font
+ Pick your font.\nDo not select file from Recent.
+ Lockscreen Clock Prefs
+ Custom Color Clock
+ Custom color instead of primary color
+ Text Scaling
+ Use Custom User Name
+ User Name
+ Use Custom User Image
+ User Image
+ Click to pick an image.
+ Line Height
+ Clock Margins
+ Top Margin
+ Bottom Margin
+ Stock Lockscreen Clock Prefs
+ Red One behavior
+ Disable Red One
+ Color for 1 in Clock
+
+ Wellcome Back
+ User
+
+
+ Time is
+ Calendar
+ Today is
+
+
+ Miscellaneous
+
+
+ About Pulse
+ Pulse is a brilliant audio graphic equalizer when music plays on the device.\nEnabling Pulse on Ambient and/or NavBar can increase power consumption.
+ Pulse
+ Audio graphic equalizer for navigation bar and lockscreen
+ Navbar Pulse
+ Audio graphic equalizer on the navigation bar
+ Lockscreen Pulse
+ Audio graphic equalizer on the lockscreen
+ Ambient Pulse
+ Audio graphic equalizer on the ambient screen
+ Render mode
+ Fading blocks
+ Solid lines
+ Fading blocks mode settings
+ Sanity level
+ Lava lamp speed
+ Solid lines count
+ Solid lines opacity
+ Rounded corners
+ Solid lines with rounded tip
+ Solid lines mode settings
+ Color
+ Accent
+ Custom
+ Lava lamp
+ Album
+ Choose color
+ Turn on smoothing
+ Each bar is animated more smoothly
+ Bar width
+ Bar spacing
+ Block size
+ Block spacing
+
+
+ Volume Steps
+ Control the granularity of each stream
+ Media
+ Calls
+ Alarms
+ %1s steps
+
+
+ Smart Pause
+ Use smart pause
+ Off
+ Automatically pauses media when the volume is muted and will resume automatically when volume is restored within the set time.
+ Use a timeout of
+ No timeout
+ On (no timeout)
+ 30 seconds
+ On (30 seconds)
+ 1 minute
+ On (1 minute)
+ 2 minutes
+ On (2 minutes)
+ 5 minutes
+ On (5 minutes)
+ 10 minutes
+ On (10 minutes)
+
+
+ Volume panel
+ Volume panel position
+ Right
+ Left
+ Volume Panel Customizations
+ Customize Volume Panel Colors
+ Disable volume warning
+ Volume panel timeout
+
+
+ Customize Slider Progress Color
+ Link Progress to primary color
+ Customize Icon Color
+ Link Icon to primary color
+
+
+ Volume panel styles
+ Show volume percentage
+
+
+
+
+ Remove rotate floating button
+ Power Menu
+ Hide SOS in Power Menu
+ Advanced Reboot
+ Add advanced reboot options to power menu.
+ Use Authentication
+ Require authentication to use advanced reboot options.
+ Hide in Lockscreen
+ Show entry in Settings
+
+
+ Sensor block per-package
+ Block access to certain sensors for some apps to save battery
+ Block sensors for these apps
+ Add apps for Sensor block
+ Significant motion, accelerometer, linear acceleration sensors will be blocked for these apps
+ Delete
+ Remove selected item?
+ Choose app
+ Enable
+
+
+ Hooks
+ Reboot pending
+ Connected packages
+ Package responsive
+ Package not enabled in LSposed
+ Package not responding
+ Package disable because bootloops
+ Package not found
+ Loading %s
+ Package successfully activated
+ Package activation failed
+ Activate in LSPosed
+ Package is not launch-able
+ Launch app
+ Restart app
+
+
+ Advanced Reboot
+ Advanced Reboot Authentication
+ Authenticate to show advanced reboot options
+ Recovery
+ Bootloader
+ Safe Mode
+ Fast Reboot
+ Restart SystemUI
+
+
+ Delete All
+ Delete all settings
+ Export
+ Export settings
+ Import
+ Import settings
+ About
+ GitHub repository
+ DHD22800/OxygenCustomizer
+ Usage
+ Open wiki page
+ Credits
+ Thanking those who made this possible.
+
+
+ Weather provider
+ Unit
+ Show Location
+ Show Condition
+ Show Humidity
+ Show Wind
+ Text Size
+ Image Size
+ Weather Text Custom Color
+ OpenWeatherMap
+ MET Norway
+ Verifying location
+ Select location
+ Custom location
+ Enter location
+ Location
+ Set custom location
+ Cannot retrieve location!
+ Network geolocation is disabled.\n\nSet a custom location or enable network location
+ Enable
+ Settings
+ Automatic updates
+ Metric (\u00b0C)
+ Imperial (\u00b0F)
+ Update
+ Enable
+ Update interval
+ 1 hour
+ 2 hours
+ 4 hours
+ 6 hours
+ 12 hours
+ Weather
+ Condition icon pack
+ Find icon packs
+ Disabled
+ Error
+ Last update time
+ Waiting \u2026
+ No weather data
+ Error loading weather data
+ Waiting\u2026
+ Updating\u2026
+ Service disabled
+ Weather
+ Now
+ Background shadow
+ Service settings
+
+ *
+ With 4-day forecast and details
+ Custom OWM key
+ Unknown
+ Weather
+ Error loading weather data
+ Weather
+ Weather
+ Last update:
+ No location available
+ No network found
+ "Actual weather and 4-day forecast"
+ Follow System
+ Dark
+ Light
+ Theme
+ Select location
+ Search for a location
+
+
+ Cloudy
+ Rainy
+ Sunny
+ Stormy
+ Snowy
+ Windy
+ Misty
+
+ Lockscreen Weather
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 000000000..78b515b04
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
new file mode 100644
index 000000000..f89841f2a
--- /dev/null
+++ b/app/src/main/res/values/themes.xml
@@ -0,0 +1,51 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/adaptive_playback_sound_mods.xml b/app/src/main/res/xml/adaptive_playback_sound_mods.xml
new file mode 100644
index 000000000..a53c92bd1
--- /dev/null
+++ b/app/src/main/res/xml/adaptive_playback_sound_mods.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml
new file mode 100644
index 000000000..fa0f996d2
--- /dev/null
+++ b/app/src/main/res/xml/backup_rules.xml
@@ -0,0 +1,13 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/battery_bar_settings.xml b/app/src/main/res/xml/battery_bar_settings.xml
new file mode 100644
index 000000000..b57fa2142
--- /dev/null
+++ b/app/src/main/res/xml/battery_bar_settings.xml
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/buttons_prefs.xml b/app/src/main/res/xml/buttons_prefs.xml
new file mode 100644
index 000000000..27a2b66e1
--- /dev/null
+++ b/app/src/main/res/xml/buttons_prefs.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml
new file mode 100644
index 000000000..9ee9997b0
--- /dev/null
+++ b/app/src/main/res/xml/data_extraction_rules.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/gesture_prefs.xml b/app/src/main/res/xml/gesture_prefs.xml
new file mode 100644
index 000000000..19a58ea1d
--- /dev/null
+++ b/app/src/main/res/xml/gesture_prefs.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/launcher_mods.xml b/app/src/main/res/xml/launcher_mods.xml
new file mode 100644
index 000000000..649025542
--- /dev/null
+++ b/app/src/main/res/xml/launcher_mods.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/lockscreen_clock.xml b/app/src/main/res/xml/lockscreen_clock.xml
new file mode 100644
index 000000000..96430e134
--- /dev/null
+++ b/app/src/main/res/xml/lockscreen_clock.xml
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/lockscreen_prefs.xml b/app/src/main/res/xml/lockscreen_prefs.xml
new file mode 100644
index 000000000..782aab566
--- /dev/null
+++ b/app/src/main/res/xml/lockscreen_prefs.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/misc_prefs.xml b/app/src/main/res/xml/misc_prefs.xml
new file mode 100644
index 000000000..14af9fce1
--- /dev/null
+++ b/app/src/main/res/xml/misc_prefs.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/mods.xml b/app/src/main/res/xml/mods.xml
new file mode 100644
index 000000000..07e920249
--- /dev/null
+++ b/app/src/main/res/xml/mods.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/navbar_settings.xml b/app/src/main/res/xml/navbar_settings.xml
new file mode 100644
index 000000000..fabe06290
--- /dev/null
+++ b/app/src/main/res/xml/navbar_settings.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/own_settings.xml b/app/src/main/res/xml/own_settings.xml
new file mode 100644
index 000000000..6c87a8e19
--- /dev/null
+++ b/app/src/main/res/xml/own_settings.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/package_manager_prefs.xml b/app/src/main/res/xml/package_manager_prefs.xml
new file mode 100644
index 000000000..cf0f4f5cd
--- /dev/null
+++ b/app/src/main/res/xml/package_manager_prefs.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/pulse_mods.xml b/app/src/main/res/xml/pulse_mods.xml
new file mode 100644
index 000000000..3391fdba1
--- /dev/null
+++ b/app/src/main/res/xml/pulse_mods.xml
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/qs_header_clock_prefs.xml b/app/src/main/res/xml/qs_header_clock_prefs.xml
new file mode 100644
index 000000000..4c48bb507
--- /dev/null
+++ b/app/src/main/res/xml/qs_header_clock_prefs.xml
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/qs_header_image_prefs.xml b/app/src/main/res/xml/qs_header_image_prefs.xml
new file mode 100644
index 000000000..a72def862
--- /dev/null
+++ b/app/src/main/res/xml/qs_header_image_prefs.xml
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/qs_header_prefs.xml b/app/src/main/res/xml/qs_header_prefs.xml
new file mode 100644
index 000000000..6ab5a751e
--- /dev/null
+++ b/app/src/main/res/xml/qs_header_prefs.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/quick_settings_mods.xml b/app/src/main/res/xml/quick_settings_mods.xml
new file mode 100644
index 000000000..4f0ab059b
--- /dev/null
+++ b/app/src/main/res/xml/quick_settings_mods.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/quick_settings_tiles_customizations_prefs.xml b/app/src/main/res/xml/quick_settings_tiles_customizations_prefs.xml
new file mode 100644
index 000000000..9fe5c7c31
--- /dev/null
+++ b/app/src/main/res/xml/quick_settings_tiles_customizations_prefs.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/quick_settings_tiles_prefs.xml b/app/src/main/res/xml/quick_settings_tiles_prefs.xml
new file mode 100644
index 000000000..9258f9ec4
--- /dev/null
+++ b/app/src/main/res/xml/quick_settings_tiles_prefs.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/sound_mods.xml b/app/src/main/res/xml/sound_mods.xml
new file mode 100644
index 000000000..cc4a55e8b
--- /dev/null
+++ b/app/src/main/res/xml/sound_mods.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/statusbar.xml b/app/src/main/res/xml/statusbar.xml
new file mode 100644
index 000000000..20917e739
--- /dev/null
+++ b/app/src/main/res/xml/statusbar.xml
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/statusbar_battery_icon.xml b/app/src/main/res/xml/statusbar_battery_icon.xml
new file mode 100644
index 000000000..b279d3add
--- /dev/null
+++ b/app/src/main/res/xml/statusbar_battery_icon.xml
@@ -0,0 +1,248 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/statusbar_clock.xml b/app/src/main/res/xml/statusbar_clock.xml
new file mode 100644
index 000000000..dac2bc335
--- /dev/null
+++ b/app/src/main/res/xml/statusbar_clock.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/statusbar_icons.xml b/app/src/main/res/xml/statusbar_icons.xml
new file mode 100644
index 000000000..5f88ad4f4
--- /dev/null
+++ b/app/src/main/res/xml/statusbar_icons.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/statusbar_notifications.xml b/app/src/main/res/xml/statusbar_notifications.xml
new file mode 100644
index 000000000..fdd8fa01d
--- /dev/null
+++ b/app/src/main/res/xml/statusbar_notifications.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/volume_panel_customizations.xml b/app/src/main/res/xml/volume_panel_customizations.xml
new file mode 100644
index 000000000..9c4d86d51
--- /dev/null
+++ b/app/src/main/res/xml/volume_panel_customizations.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/weather_settings.xml b/app/src/main/res/xml/weather_settings.xml
new file mode 100644
index 000000000..bd71990f4
--- /dev/null
+++ b/app/src/main/res/xml/weather_settings.xml
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 000000000..e041af262
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,5 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+ id("com.android.application") version "8.3.2" apply false
+ id("org.jetbrains.kotlin.android") version "1.9.10" apply false
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 000000000..745a9ed07
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,22 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Enables namespacing of each library's R class so that its R class includes only the
+# resources declared in the library itself and none from the library's dependencies,
+# thereby reducing the size of the R class for that library
+android.nonTransitiveRClass=false
+android.nonFinalResIds=false
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..e708b1c02
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..9d11b1971
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Feb 02 20:26:52 CET 2024
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100644
index 000000000..4f906e0c8
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 000000000..107acd32c
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle.kts b/settings.gradle.kts
new file mode 100644
index 000000000..f224ff32f
--- /dev/null
+++ b/settings.gradle.kts
@@ -0,0 +1,19 @@
+pluginManagement {
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ maven { setUrl("https://jitpack.io") }
+ }
+}
+
+rootProject.name = "Oxygen Customizer"
+include(":app")
+
\ No newline at end of file